質問: CreateWindow(szClassName3, // クラスの名前 "xyz", // タイトルバーに表示される WS_OVERLAPPEDWINDOW, // ウィンドウの種類 CW_USEDEFAULT, //x座標 CW_USEDEFAULT, //y座標 488, //幅 366, //高さ NULL, // 親ウィンドウのハンドル、親を作るときはNULL NULL, // メニューハンドル、クラスメニューを作るときはNULL hInst3, // インスタンスハンドル NULL ); if(!hWnd3) return FALSE; ShowWindow(hWnd3, nCmdShow); UpdateWindow(hWnd3); return TRUE; } ``` 3つ目のウィンドウを表示するためのウィンドウプロシージャ(kobayashi_WndProc3)が以下になります。 ``` #include "kobayashi.h" LRESULT CALLBACK WndProc3( HWND hWnd3, UINT msg, WPARAM wp, LPARAM lp ) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); break; default: return (DefWindowProc(hWnd3, msg, wp, lp)); } return 0; } ```
回答: ウィンドウのハンドルを3ではなく2と書き間違えていました。 ``` BOOL InitInstance3(HINSTANCE hInst3, int nCmdShow) { // プロット用ウィンドウの作成 hWnd3 = CreateWindow(szClassName3, // クラスの名前 "xyz", // タイトルバーに表示される WS_OVERLAPPEDWINDOW, // ウィンドウの種類 CW_USEDEFAULT, //x座標 CW_USEDEFAULT, //y座標 488, //幅 366, //高さ NULL, // 親ウィンドウのハンドル、親を作るときはNULL NULL, // メニューハンドル、クラスメニューを作るときはNULL hInst3, // インスタンスハンドル NULL ); if(!hWnd3) return FALSE; ShowWindow(hWnd3, nCmdShow); UpdateWindow(hWnd3); return TRUE; } ```