サードパーティ プログラム内で C++ のプラグインを開発しており、OpenGL でウィンドウを表示する必要があります。Win32 で直接プログラムしたい (つまり、MFC や他のラッパーを使用しない)。
NeHes Win32 チュートリアルをダウンロードしてコンパイルし、自分のマシンで正常に実行しました。
ただし、これはループして PeekMessage を呼び出し、メッセージがあれば TranslateMessage と DispatchMessage を呼び出し、メッセージがなければ OpenGL を再描画するメイン プログラムです。
Win32 OpenGL ウィンドウを「スポーンオフ」してから、サードパーティ プログラムに制御を戻したい:
void DisplayOpenGLWindow_ButtonPressed() {
CreateWindowEx(...);
InitOpenGL(...);
return;
}
しかし、新しいウィンドウで OpenGL シーンを再描画するにはどうすればよいですか? コールバック関数内に OpenGL を再描画する呼び出しを追加しようとしました。
case WM_PAINT:
{
DrawGLScene();
return 0;
}
しかし、これはうまくいきません。クリアカラーが黒でも窓は真っ白。ウィンドウのサイズ変更と移動は役に立ちません。