/** * 入口函数 */ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd) { if(!AppInit(hInst)){ MessageBox(0, "AppInit() - FAILED", 0, 0); return 0; } if(!AppSetup()){ MessageBox(0, "AppSetup() - FAILED", 0, 0); return 0; } MSG msg; ZeroMemory(&msg, sizeof(MSG)); LARGE_INTEGER lpf; QueryPerformanceFrequency(&lpf); LONGLONG nFreq = lpf.QuadPart; QueryPerformanceCounter(&lpf); static LONGLONG lastFreq = lpf.QuadPart; while(msg.message != WM_QUIT){ if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } QueryPerformanceCounter(&lpf); LONGLONG curFreq = lpf.QuadPart; float deltaTime = (curFreq - lastFreq) / (float)nFreq; Time::deltaTime = deltaTime; lastFreq = curFreq; if(!AppLoop()){ MessageBox(0, "AppLoop() - FAILED", 0, 0); } } AppDestory(); return msg.wParam; }
void Window::Loop() { AppLoop(); }
const fpInitTask pxInitlist[13] PROGMEM = { AppInit(TN_00),AppInit(TN_01),AppInit(TN_02),AppInit(TN_03),AppInit(TN_04),AppInit(TN_05),AppInit(TN_06),AppInit(TN_07),AppInit(TN_08),AppInit(TN_09),AppInit(TN_10),AppInit(TN_11),AppInit(TN_12) }; #elif ( defNumberOfTasks == 14 ) const fpInitTask pxInitlist[14] PROGMEM = { AppInit(TN_00),AppInit(TN_01),AppInit(TN_02),AppInit(TN_03),AppInit(TN_04),AppInit(TN_05),AppInit(TN_06),AppInit(TN_07),AppInit(TN_08),AppInit(TN_09),AppInit(TN_10),AppInit(TN_11),AppInit(TN_12),AppInit(TN_13) }; #elif ( defNumberOfTasks == 15 ) const fpInitTask pxInitlist[15] PROGMEM = { AppInit(TN_00),AppInit(TN_01),AppInit(TN_02),AppInit(TN_03),AppInit(TN_04),AppInit(TN_05),AppInit(TN_06),AppInit(TN_07),AppInit(TN_08),AppInit(TN_09),AppInit(TN_10),AppInit(TN_11),AppInit(TN_12),AppInit(TN_13),AppInit(TN_14) }; #elif ( defNumberOfTasks == 16 ) const fpInitTask pxInitlist[16] PROGMEM = { AppInit(TN_00),AppInit(TN_01),AppInit(TN_02),AppInit(TN_03),AppInit(TN_04),AppInit(TN_05),AppInit(TN_06),AppInit(TN_07),AppInit(TN_08),AppInit(TN_09),AppInit(TN_10),AppInit(TN_11),AppInit(TN_12),AppInit(TN_13),AppInit(TN_14),AppInit(TN_15) }; #endif #endif #if defNumberOfTasks == 0 const fpLoopTask pxLooplist[0] PROGMEM = { }; #elif defNumberOfTasks == 1 const fpLoopTask pxLooplist[1] PROGMEM = { AppLoop(TN_00) }; #elif defNumberOfTasks == 2 const fpLoopTask pxLooplist[2] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01) }; #elif defNumberOfTasks == 3 const fpLoopTask pxLooplist[3] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02) }; #elif defNumberOfTasks == 4 const fpLoopTask pxLooplist[4] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02),AppLoop(TN_03) }; #elif defNumberOfTasks == 5 const fpLoopTask pxLooplist[5] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02),AppLoop(TN_03),AppLoop(TN_04) }; #elif defNumberOfTasks == 6 const fpLoopTask pxLooplist[6] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02),AppLoop(TN_03),AppLoop(TN_04),AppLoop(TN_05) }; #elif defNumberOfTasks == 7 const fpLoopTask pxLooplist[7] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02),AppLoop(TN_03),AppLoop(TN_04),AppLoop(TN_05),AppLoop(TN_06) }; #elif defNumberOfTasks == 8 const fpLoopTask pxLooplist[8] PROGMEM = { AppLoop(TN_00),AppLoop(TN_01),AppLoop(TN_02),AppLoop(TN_03),AppLoop(TN_04),AppLoop(TN_05),AppLoop(TN_06),AppLoop(TN_07) }; #elif defNumberOfTasks == 9
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static BOOL bAlarm = FALSE; int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; //if( message == CMouseHook::UWM_DRAGEEND) //{ // SetCapture(NULL); // SetCursor(LoadCursor(NULL,IDC_ARROW)); // CMouseHook::StopHook(); // if( g_pChessBoard ) // { // g_pChessBoard->GetGameWindow(); // } //} switch (message) { case WM_ACTIVATEAPP: g_bActive = wParam; break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_CAPTURE: break; case IDM_ABOUT: //test(); DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, About); break; case IDM_EXIT: DestroyWindow(hwnd); break; case IDM_SEC5: AppEnv::nThinkTime = 5; CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_CHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_UNCHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_UNCHECKED); break; case IDM_SEC10: AppEnv::nThinkTime = 10; CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_UNCHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_CHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_UNCHECKED); break; case IDM_SEC30: AppEnv::nThinkTime = 30; CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_UNCHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_UNCHECKED); CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_CHECKED); break; case IDM_AUTOPLAY: AppEnv::bAutoPlay = !AppEnv::bAutoPlay ; if(AppEnv::bAutoPlay ) CheckMenuItem(GetMenu(g_hWndMain), IDM_AUTOPLAY, MF_CHECKED); else CheckMenuItem(GetMenu(g_hWndMain), IDM_AUTOPLAY, MF_UNCHECKED); default: return DefWindowProc(g_hWndMain, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); if ( g_pMainSurface ) { g_pMainSurface->FastBlt(hdc); } EndPaint(hwnd, &ps); break; case WM_LBUTTONDOWN: //SetCapture(hwnd); //SetCursor(LoadCursor(NULL,IDC_CROSS)); //CMouseHook::StartHook(hwnd); break; //case WM_KEYUP: // vk = (int) wParam; // switch( vk ) // { // case VK_RETURN: // if ( g_pChessEngine) // { // if ( g_pChessEngine->GetState() == CChessEngine::BusyWait ) // g_pChessEngine->SendCommand("stop"); // } // //DumpBoradHash(); // break; // } break; case WM_TIMER: switch( wParam ) { case APPUPDATE_TIMER: if (!AppLoop()) { DestroyWindow(hwnd); } doUpdate(); return 0; } break; case WM_DESTROY: if(g_bInitialized) { ExitApp(); } doRelease(); PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }