我正在第 3 方程序中使用 C++ 开发插件,并且需要使用 OpenGL 显示一个窗口。我想直接在 Win32 中编程(即不使用 MFC 或其他包装器)。
我下载了 NeHes Win32 教程并在我的机器上成功编译并运行它。
然而,这是一个主程序,如果有任何消息,则循环并调用 PeekMessage,然后是 TranslateMessage 和 DispatchMessage,如果没有则重绘 OpenGL。
我想“生成”一个 Win32 OpenGL 窗口,然后将控制权返回给第 3 方程序:
void DisplayOpenGLWindow_ButtonPressed() {
CreateWindowEx(...);
InitOpenGL(...);
return;
}
但是如何让新窗口重绘 OpenGL 场景呢?我试图在回调函数中添加一个重绘 OpenGL 的调用:
case WM_PAINT:
{
DrawGLScene();
return 0;
}
但这不起作用;即使清晰的颜色是黑色,窗口也是全白的。调整窗口大小和移动窗口无济于事。