4

メイン ウィンドウのボタンをクリックしたときにポップアップ ウィンドウを作成しようとしています。そのために CreateWindowEX 関数を使用しています。ただし、CreateWindowEx 関数は、最後から 2 番目のパラメーターとして HINSTANCE 型変数を受け取ります。ボタンがクリックされたときに WndProcedure 内からこの新しいウィンドウを作成していることを考えると、WinMain 関数の HINSTANCE 変数はグローバル変数ではないため、使用できません。

次のコードは、WndProcedure コールバック関数から取得されました。

            case IDC_BUTTON PRESSED:
            {

                const char g_szClassName2[] = "POPWIND";
                const char WndName2[] = "POPUP WINDOW";

                HWND invisWindowHandle = CreateWindowEx(0,
                      g_szClassName2,
                      WndName2,
                      WS_OVERLAPPEDWINDOW,
                      200,
                      200,
                      800,
                      500,
                      NULL,
                      NULL,
                      hInstance,//THIS IS THE VARIABLE I AM HAVING TROUBLE GETTING
                      NULL);

                ShowWindow(invisWindowHandle, 3);// SW_SHOWNORMAL);
                UpdateWindow(invisWindowHandle);
             }

CreateWindowEx 関数が WndProcedure コールバック関数内から機能するように、必要な hInstance 変数を取得するにはどうすればよいでしょうか。

注: hInstance 変数をグローバルにすることを検討しましたが、アプリケーションが作成するすべてのウィンドウで同じ hInstance を使用する必要があるかどうかはわかりません。

4

1 に答える 1