1

我正在第 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;
}

但这不起作用;即使清晰的颜色是黑色,窗口也是全白的。调整窗口大小和移动窗口无济于事。

4

1 回答 1

0

答案会很大,所以我会指导您阅读一些教程 :)

链接:

Nehe 主要使用 Win32 api,因此请寻找 MFC 教程/文章。

另一件事:尝试关注现代 opengl,版本 3. 及更高版本。

于 2013-09-20T14:05:56.550 回答