/*------------------------------------------------------------------------------*/ static LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { SettingProc( msg, wParam, lParam ); pAkindDI->Message( msg, wParam, lParam ); switch ( msg ){ case WM_KEYDOWN: switch( wParam ){ case VK_F1 : RemoteJoyLite_ToggleDebug(); break; case VK_F3 : RemoteJoyLite_ToggleDisp(); break; case VK_F4 : ChangeWindowStyle( hWnd ); break; case VK_F5 : ResetUsb = true; break; case VK_F9 : MacroRecodeToggle(); break; case VK_F11 : RemoteJoyLite_SaveBitmap(); break; case VK_F12 : RemoteJoyLite_SaveMovie(); break; } break; case WM_MENUCHAR: return( MNC_CLOSE << 16 ); case WM_NCMOUSEMOVE: case WM_MOUSEMOVE: if (!IsMouseShowing()) { ShowCursor(TRUE); } MouseHiddenWaitCount = 0; break; case WM_LBUTTONDBLCLK: ChangeZoomMax( hWnd ); break; case WM_SYSKEYDOWN: if ( wParam == VK_RETURN ){ ChangeZoomMax( hWnd ); } break; case WM_SYSCOMMAND: if ( wParam == SC_SCREENSAVE ){ return( 1 ); } break; case WM_DESTROY: LoopFlag = FALSE; PostQuitMessage( 0 ); break; case WM_SIZE: if ( FullScreen == 0 && !IsIconic(hWnd) ) { LOG(LOG_LEVEL_WARN, "WndProc() windowed."); pAkindD3D->reset(false); } break; case WM_DEVICECHANGE: if (wParam == DBT_DEVICEARRIVAL && IsPspDevice((DEV_BROADCAST_HDR*)lParam)) { if (FullScreen) { LOG(LOG_LEVEL_WARN, "WndProc() windowed."); pAkindD3D->reset(false); } SetUsbResetStatus(USB_RESET_STATUS_OPENING); } } return( DefWindowProc( hWnd, msg, wParam, lParam ) ); }
void RefreshWindows() { if(nCurrentMode==LAYOUTER){ HWND hWndList[6] = { vSceneList.GetHolderWnd(), wingl.CGethWnd(), vSceneObjectList.GetHolderWnd(), vObjectList.GetHolderWnd() , vTimeline.GetHWnd(), vClone.GetHolderWnd()}; //float real_ratio[6][4] = { {0.0f, 0.0f, 0.1f, 0.5f}, {0.1f, 0.0f, 0.7f, 0.7125f}, {0.8f, 0.0f, 0.2f, 0.5f}, // {0.0f, 0.5f, 0.1f, 0.5f}, {0.2f, 0.8f, 0.5f, 0.15f}, {0.8f, 0.5f, 0.2f, 0.5f}}; float real_ratio[6][4] = { {0.0f, 0.8f, 0.15f, 1-0.8f}, {0.0f, 0.0f, 0.78125f, 0.8f}, {0.78125f, 0.2f, 1.0f-0.78125f, 0.3f}, {0.78125f,0.0f, 1.0f-0.78125f, 0.2f}, {0.15f, 0.8f, 0.78125f-0.15f, 0.2f}, {0.78125f, 0.5f, 1.0f-0.78125f, 0.5f} }; RECT rect; GetClientRect(hMainWnd, &rect); //上段 //SetWindowPos(hWndList[0], 0, 0, 0, rect.right*ratio[0][0], rect.bottom*ratio[0][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[0], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[0], 0, rect.right*real_ratio[0][0], rect.bottom*real_ratio[0][1], rect.right*real_ratio[0][2], rect.bottom*real_ratio[0][3], SWP_NOZORDER); //SetWindowPos(hWndList[1], 0, rect.right*ratio[0][0], 0, rect.right*ratio[1][0], rect.right*ratio[1][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[1], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[1], 0, rect.right*real_ratio[1][0], rect.bottom*real_ratio[1][1], rect.right*real_ratio[1][2], rect.bottom*real_ratio[1][3], SWP_NOZORDER); //SetWindowPos(hWndList[2], 0, rect.right*ratio[0][0]+rect.right*ratio[1][0], 0, rect.right*ratio[2][0], rect.right*ratio[2][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[2], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[2], 0, rect.right*real_ratio[2][0], rect.bottom*real_ratio[2][1], rect.right*real_ratio[2][2], rect.bottom*real_ratio[2][3], SWP_NOZORDER); //RECT t; //GetClientRect(hWndList[2], &t); //SetWindowPos(vObjectList.GetListWnd() , 0, 0, 0, t.right, t.bottom, SWP_NOZORDER|SWP_NOMOVE); //下段 //SetWindowPos(hWndList[3], 0, 0, rect.bottom*ratio[3][1], rect.right*ratio[3][0], rect.bottom*ratio[3][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[3], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[3], 0, rect.right*real_ratio[3][0], rect.bottom*real_ratio[3][1], rect.right*real_ratio[3][2], rect.bottom*real_ratio[3][3], SWP_NOZORDER); //SetWindowPos(hWndList[4], 0, rect.right*ratio[3][0], rect.bottom*ratio[4][1], rect.right*ratio[4][0], rect.bottom*ratio[4][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[4], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[4], 0, rect.right*real_ratio[4][0], rect.bottom*real_ratio[4][1], rect.right*real_ratio[4][2], rect.bottom*real_ratio[4][3], SWP_NOZORDER); //SetWindowPos(hWndList[5], 0, rect.right*ratio[3][0]+rect.right*ratio[4][0], rect.bottom*ratio[5][1], rect.right*ratio[5][0], rect.bottom*ratio[5][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[5], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[5], 0, rect.right*real_ratio[5][0], rect.bottom*real_ratio[5][1], rect.right*real_ratio[5][2], rect.bottom*real_ratio[5][3], SWP_NOZORDER); }else{ HWND hWndList[6] = { vSceneList.GetHolderWnd(), wingl.CGethWnd(), vSceneObjectList.GetHolderWnd(), vSynth.GetHolderWnd() , vTimeline.GetHWnd(), vSound.GetHolderWnd()}; //x,y, width, height float real_ratio[6][4] = { {0.0f, 0.8f, 0.15f, 1-0.8f}, {0.0f, 0.0f, 0.78125f, 0.8f}, {0.78125f, 0.40f, 1.0f-0.78125f, 0.30f},//SceneObjectList //{0.78125f, 0.40f, 1.0f-0.78125f, 0.40f},//Time {0.78125f, 0.0f, 1.0f-0.78125f, 0.40f},//Synth {0.15f, 0.8f, 0.78125f-0.15f, 0.2f}, {0.78125f, real_ratio[2][3] + real_ratio[3][3], 1.0f-0.78125f, 1.00f - real_ratio[5][1]}//Sound }; RECT rect; GetClientRect(hMainWnd, &rect); //上段 //SetWindowPos(hWndList[0], 0, 0, 0, rect.right*ratio[0][0], rect.bottom*ratio[0][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[0], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[0], 0, rect.right*real_ratio[0][0], rect.bottom*real_ratio[0][1], rect.right*real_ratio[0][2], rect.bottom*real_ratio[0][3], SWP_NOZORDER); //SetWindowPos(hWndList[1], 0, rect.right*ratio[0][0], 0, rect.right*ratio[1][0], rect.right*ratio[1][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[1], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[1], 0, rect.right*real_ratio[1][0], rect.bottom*real_ratio[1][1], rect.right*real_ratio[1][2], rect.bottom*real_ratio[1][3], SWP_NOZORDER); //SetWindowPos(hWndList[2], 0, rect.right*ratio[0][0]+rect.right*ratio[1][0], 0, rect.right*ratio[2][0], rect.right*ratio[2][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[2], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[2], 0, rect.right*real_ratio[2][0], rect.bottom*real_ratio[2][1], rect.right*real_ratio[2][2], rect.bottom*real_ratio[2][3], SWP_NOZORDER); //RECT t; //GetClientRect(hWndList[2], &t); //SetWindowPos(vObjectList.GetListWnd() , 0, 0, 0, t.right, t.bottom, SWP_NOZORDER|SWP_NOMOVE); //下段 //SetWindowPos(hWndList[3], 0, 0, rect.bottom*ratio[3][1], rect.right*ratio[3][0], rect.bottom*ratio[3][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[3], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[3], 0, rect.right*real_ratio[3][0], rect.bottom*real_ratio[3][1], rect.right*real_ratio[3][2], rect.bottom*real_ratio[3][3], SWP_NOZORDER); //SetWindowPos(hWndList[4], 0, rect.right*ratio[3][0], rect.bottom*ratio[4][1], rect.right*ratio[4][0], rect.bottom*ratio[4][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[4], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[4], 0, rect.right*real_ratio[4][0], rect.bottom*real_ratio[4][1], rect.right*real_ratio[4][2], rect.bottom*real_ratio[4][3], SWP_NOZORDER); //SetWindowPos(hWndList[5], 0, rect.right*ratio[3][0]+rect.right*ratio[4][0], rect.bottom*ratio[5][1], rect.right*ratio[5][0], rect.bottom*ratio[5][1], SWP_NOZORDER); ChangeWindowStyle(hWndList[5], WS_POPUP|WS_VISIBLE); SetWindowPos(hWndList[5], 0, rect.right*real_ratio[5][0], rect.bottom*real_ratio[5][1], rect.right*real_ratio[5][2], rect.bottom*real_ratio[5][3], SWP_NOZORDER); } }
static LONG WindowLong(int Func, HWND hWnd, int nIndex, DWORD dwNewLong) { HWND32 hWndTmp32; LPBYTE ptr,ptr1; DWORD dwTemp,dw; int i; BYTE b; if (!(hWndTmp32 = GETHWND32(hWnd))) { return(0L); } if (nIndex < 0) { switch(nIndex) { case GWL_EXSTYLE: dwTemp = hWndTmp32->dwExStyle; if (Func == WND_SET) hWndTmp32->dwExStyle = dwNewLong; break; case GWL_STYLE: dwTemp = hWndTmp32->dwStyle; if (Func == WND_SET) hWndTmp32->dwStyle = ChangeWindowStyle(hWndTmp32,dwNewLong); break; case GWL_WNDPROC: dwTemp = (DWORD)hWndTmp32->lpfnWndProc; if (Func == WND_SET) hWndTmp32->lpfnWndProc = (WNDPROC)dwNewLong; break; case GWL_DRVDATA: dwTemp = (DWORD)hWndTmp32->lpDrvData; if (Func == WND_SET) hWndTmp32->lpDrvData = (LPVOID)dwNewLong; break; case GWL_UPDATE: dwTemp = (DWORD) hWndTmp32->UpdateRegion; if (Func == WND_SET) hWndTmp32->UpdateRegion = dwNewLong; break; case GWL_USERDATA: dwTemp = (DWORD) hWndTmp32->dwUserData; if (Func == WND_SET) hWndTmp32->dwUserData = dwNewLong; break; #ifdef TWIN32 case GWL_HINSTANCE: dwTemp = (DWORD)(hWndTmp32->hInstance); if (Func == WND_SET) hWndTmp32->hInstance = (HINSTANCE)dwNewLong; break; case GWL_ID: dwTemp = hWndTmp32->wChildID; if (Func == WND_SET) hWndTmp32->wChildID = dwNewLong; break; case GWL_HMENU: dwTemp = (DWORD)hWndTmp32->hMenu; if (Func == WND_SET) hWndTmp32->hMenu = (HMENU)dwNewLong; break; case GWL_HSYSMENU: dwTemp = (DWORD)hWndTmp32->hSysMenu; if (Func == WND_SET) hWndTmp32->hSysMenu = (HMENU)dwNewLong; break; case GWL_HWNDMENU: dwTemp = (DWORD)hWndTmp32->hWndFrame; if (Func == WND_SET) hWndTmp32->hWndFrame = (HWND)dwNewLong; break; case GWL_HWNDFOCUS: dwTemp = (DWORD)hWndTmp32->hChildFocus; if (Func == WND_SET) hWndTmp32->hChildFocus = (HWND)dwNewLong; break; case GWL_HWNDPARENT: dwTemp = (DWORD)hWndTmp32->hWndParent; if (Func == WND_SET) { if (hWndTmp32->dwStyle & WS_CHILD) return SetParent(hWnd,(HWND)dwNewLong); else hWndTmp32->hWndOwner = (HWND)dwNewLong; } break; case GWL_HWNDHZSCROLL: dwTemp = (DWORD)hWndTmp32->hWndHZScroll; if (Func == WND_SET) hWndTmp32->hWndHZScroll = (HWND)dwNewLong; break; case GWL_HWNDVTSCROLL: dwTemp = (DWORD)hWndTmp32->hWndVTScroll; if (Func == WND_SET) hWndTmp32->hWndVTScroll = (HWND)dwNewLong; break; case GWL_HDC: dwTemp = (DWORD)hWndTmp32->hDC; if (Func == WND_SET) hWndTmp32->hDC = (HDC)dwNewLong; break; #endif default: ERRSTR((LF_ERROR, "WindowLong: Unknown Index: %d\n", nIndex)); dwTemp = 0; break; } RELEASEWININFO(hWndTmp32); return dwTemp; } /* assigning extra bytes... */ ptr = ptr1 = (LPBYTE)(hWndTmp32->lpWndExtra) + nIndex; for (i = 0, dwTemp = 0; i < sizeof(DWORD); i++) { dw = ((DWORD)(*ptr++)) << (i*8); dwTemp |= dw; } if (Func == WND_SET) for (i = 0; i < sizeof(DWORD); i++) { b = (BYTE)(dwNewLong >> (i*8)); *ptr1++ = b; } RELEASEWININFO(hWndTmp32); return dwTemp; }