// ------------------------------------------------------------------------------------------ // WinProc, this handles all windows messages // ------------------------------------------------------------------------------------------ long PASCAL WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_SETCURSOR: SetCursor(NULL); // disable the cursor return TRUE; case WM_ACTIVATEAPP: bActive = wParam; // set if app is active or not break; case WM_KEYDOWN: switch(wParam) // if ESC key is hit, quit program { case VK_ESCAPE: Screen->FadeOut(4); // first fade the screen out PostMessage(hWnd, WM_CLOSE, 0, 0); break; } break; case WM_DESTROY: FiniApp(); // destroy all objects PostQuitMessage(0); // terminate program break; } return DefWindowProc(hWnd, message, wParam, lParam); }
// ------------------------------------------------------------------------------------------ // WinProc // ------------------------------------------------------------------------------------------ long PASCAL WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_ACTIVATEAPP: bActive = wParam; break; case WM_KEYDOWN: switch(wParam) { case VK_HOME: CurrentMenu->Home(); break; case VK_END: CurrentMenu->End(); break; case VK_UP: CurrentMenu->Up(); break; case VK_DOWN: CurrentMenu->Down(); break; case VK_ESCAPE: PostMessage(hWnd, WM_CLOSE, 0, 0); break; case VK_RETURN: switch(CurrentMenu->Enter()) { case 2: if(CurrentMenu == OptionsMenu) { CurrentMenu = MainMenu; } else { CurrentMenu = OptionsMenu; } break; case 3: if(CurrentMenu == MainMenu) { PostMessage(hWnd, WM_CLOSE, 0, 0); } break; } break; } break; case WM_DESTROY: FiniApp(); PostQuitMessage(0); break; } return DefWindowProc(hWnd, message, wParam, lParam); }
void CServerApp::Run() { StartRPCService(m_saRPC.ip, m_saRPC.port, 20); InitApp(); getchar(); StopRPCService(); FiniApp(); }
/* * WinMain: * Contains the message loop. */ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { MSG msg; srand(time(NULL)); // initialize the app if (!InitApp(hInst, nCmdShow)) { return FALSE; } strcpy(level_file, lpCmdLine); // infinite loop while (1) { // peekmessage so as not to interrupt processes if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { // if the message said to quit, get the hell outta here if (msg.message == WM_QUIT) { break; } // translate and dispatch the message TranslateMessage(&msg); DispatchMessage(&msg); } // if there are no messages, update the game if (g_Active) { GameMain(); } } // shutdown game and release all resources FiniApp(); // return to Windows like this return(msg.wParam); }