ホームページ >運用・保守 >窓の運用と保守 >Win32 SDK の基本 (4) Windows ウィンドウを最初から作成する方法の第 2 ステップ

Win32 SDK の基本 (4) Windows ウィンドウを最初から作成する方法の第 2 ステップ

黄舟
黄舟オリジナル
2017-06-06 09:40:272035ブラウズ

3.5 表示ウィンドウ。

アウトアウトアウトそのうち
。後者はウィンドウのプロパティを再更新し、更新後にのみプロパティが有効になります。上記の手順の後、Win

Main

関数は次のようになりました:

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);
    }
}
この時点で、ウィンドウ処理のプロセス全体が完了しました。プログラムが作成され、

Windows:

が正常に作成および表示されました。

以上がWin32 SDK の基本 (4) Windows ウィンドウを最初から作成する方法の第 2 ステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。