如何使用OpenGL画布在另一个程序中创建子窗口?

时间:2013-09-20 13:12:41

标签: c++ winapi opengl

我正在第三方程序中使用C ++开发插件,需要使用OpenGL显示一个窗口。我想直接在Win32中编程(即不使用MFC或其他包装器)。

我下载了NeHes Win32 tutorial并在我的机器上成功编译并运行它。

然而,如果有任何消息,这是一个循环并调用PeekMessage然后调用TranslateMessage和DispatchMessage的主程序,如果没有则重绘OpenGL。

我想“生成”Win32 OpenGL窗口,然后将控制权返回给第三方程序:

void DisplayOpenGLWindow_ButtonPressed() {
 CreateWindowEx(...);
 InitOpenGL(...);
 return;
}

但是如何让新窗口重绘OpenGL场景呢? 我试图在回调函数中添加一个重绘OpenGL的调用:

case WM_PAINT:
{
   DrawGLScene();   
   return 0;
}

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

1 个答案:

答案 0 :(得分:0)

答案非常大,所以我指导你去一些教程:)

链接:

Nehe主要使用Win32 api,所以要查找MFC教程/文章。

另一件事:尝试使用现代opengl版本3及以上版本。