Exemple #1
0
// ------------------------------------------------------------------------------------------
// 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);
}
Exemple #2
0
// ------------------------------------------------------------------------------------------
// 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);
}
Exemple #3
0
	void CServerApp::Run()
	{
		StartRPCService(m_saRPC.ip, m_saRPC.port, 20);
		InitApp();
		getchar();
		StopRPCService();
		FiniApp();
	}
Exemple #4
0
/*
 * 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);
}