#include #Pragma warning(Push, 3) #include #Pragma warning(pop) LRESULT CALLBACK MainWindowProc( _In_ HWND WindowHandle, // handle to window _In_ UINT Message, // message identifier _In_ WPARAM wParam, // first message parameter _In_ LPARAM LParam); // second message parameter DWORD CreatMainGameWindow(void); ///////////////////////////////////////// int WinMain(HINSTANCE Instance, HINSTANCE PreviousInstance, PSTR CommandLine, INT CmdShow) { UNREFERENCED_PARAMETER(PreviousInstance); UNREFERENCED_PARAMETER(CommandLine); UNREFERENCED_PARAMETER(CmdShow); if (CreatMainGameWindow(Instance) != ERROR_SUCCESS) { goto Exist; } /////////////////////////////// MSG Message; while(GetMessageA(&Message, NULL, 0, 0) > 0) { TranslateMessage(&Message); DispatchMessageA(&Message); } Exist: return (0); } LRESULT CALLBACK MainWindowProc( _In_ HWND WindowHandle, // handle to window _In_ UINT Message, // message identifier _In_ WPARAM wParam, // first message parameter _In_ LPARAM LParam); // second message parameter { LRESULT Result = 0; switch (Message) { case WM_CLOSE: { PostQuitMessage(0); break; } default: { Result = return DefWindowProcA(hwnd, uMsg, wParam, lParam); } } return (Result); } ///////////////////////////////////// DWORD CreatMainGameWindow(void); { DWORD Result = ERROR_SUCCESS WNDCLASSEXA WindowClass = { 0 }; HWND WindowHandle = 0; //MSG Msg; WindowClass.cbSize = sizeof(WNDCLASSEXA); WindowClass.style = 0; WindowClass.lpfnWndProc = MainWindowProc; WindowClass.cbClsExtra = 0; WindowClass.cbWndExtra = 0; WindowClass.hInstance = GetModuleHandleA(NULL); WindowClass.hIcon = LoadIconA(NULL, IDI_APPLICATION); WindowClass.hIconSm = LoadIconA(NULL, IDI_APPLICATION); WindowClass.hCursor = LoadCursorA(NULL, IDC_ARROW); WindowClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); WindowClass.lpszMenuName = NULL; WindowClass.lpszClassName = "BILL_GAME_WINDOWCLASS"; if (RegisterClassExA(&WindowClass) == 0) { Result = GetLastError(); MessageBoxA(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); goto Exit; } ////////////////////////////////////////////// WindowHandle = CreateWindowExA( WS_EX_CLIENTEDGE, WindowClass.lpszClassName, "Window Title", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, GetModuleHandleA(NULL), NULL); if(WindowHandle == NULL) { Result = GetLastError(); MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); goto Exit; } //////////////////////////////////////////////use only if you don't have WS_VISIBLE //ShowWindow(WindowHandle, TRUE); ////////////////////////////////////////////// Exist: return(Result); }