アウトアウトアウトそのうち
。後者はウィンドウのプロパティを再更新し、更新後にのみプロパティが有効になります。上記の手順の後、Win
関数は次のようになりました:
ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd);3.6 メッセージを開くループ いわゆるメッセージループは実際には無限ループであり、GetMessageメッセージを通じて常にウィンドウをキャプチャします。次に、TranslateMessage を通じて仮想キー メッセージを文字メッセージに変換し、そのメッセージを DispatchMessage を通じて処理するためにウィンドウ プログラムにディスパッチします (いわゆる処理は、定義したウィンドウ処理関数 WinProc を呼び出すことです):
int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //注册窗口类 WNDCLASSEX wce = { 0 }; wce.cbSize = sizeof(wce); wce.cbClsExtra = 0; wce.cbWndExtra = 0; wce.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wce.hCursor = NULL; wce.hIcon = NULL; wce.hIconSm = NULL; wce.hInstance = hInstance; wce.lpfnWndProc = wndProc; wce.lpszClassName = “Main”; wce.lpszMenuName = NULL; wce.style = CS_HREDRAW | CS_VREDRAW; ATOM nAtom = RegisterClassEx(&wce); if (!nAtom ) { MessageBox(NULL, "注册失败", "Infor", MB_OK); return 0; } //创建窗口 HWND hWnd = CreateWindowEx(0, “Main”, “Window”, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, g_hInstance, NULL); //显示窗口 ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); }メッセージの完成 ループ後の最終的なコードは次のとおりです (ウィンドウ登録プログラムはここにカプセル化されていますが、プロセスは同じです):
void Message() { MSG nMsg = { 0 }; while (GetMessage(&nMsg, NULL, 0, 0)) { TranslateMessage(&nMsg); DispatchMessage(&nMsg); } }この時点で、ウィンドウ処理のプロセス全体が完了しました。プログラムが作成され、
が正常に作成および表示されました。
以上がWin32 SDK の基本 (4) Windows ウィンドウを最初から作成する方法の第 2 ステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。