如何使用OpenGL画布在另一个程序中创建子窗口? 我在C++开发了一个第三方程序的插件,需要用OpenGL显示一个窗口。我想直接在Win32中编程(即不使用MFC或其他包装器)
我下载、编译并在我的机器上成功运行了它 然而,这是一个主程序,它循环并调用PeekMessage,如果有任何消息,则调用TranslateMessage和DispatchMessage,如果没有,则重新绘制OpenGL 我想“生成”一个Win32 OpenGL窗口,然后将控制权返回给第三方程序:如何使用OpenGL画布在另一个程序中创建子窗口? 我在C++开发了一个第三方程序的插件,需要用OpenGL显示一个窗口。我想直接在Win32中编程(即不使用MFC或其他包装器),c++,winapi,opengl,C++,Winapi,Opengl,我下载、编译并在我的机器上成功运行了它 然而,这是一个主程序,它循环并调用PeekMessage,如果有任何消息,则调用TranslateMessage和DispatchMessage,如果没有,则重新绘制OpenGL 我想“生成”一个Win32 OpenGL窗口,然后将控制权返回给第三方程序: void DisplayOpenGLWindow_ButtonPressed() { CreateWindowEx(...); InitOpenGL(...); return; } 但是我如何让
void DisplayOpenGLWindow_ButtonPressed() {
CreateWindowEx(...);
InitOpenGL(...);
return;
}
但是我如何让新窗口重新绘制OpenGL场景呢?
我尝试在回调函数中添加对重画OpenGL的调用:
case WM_PAINT:
{
DrawGLScene();
return 0;
}
但这是行不通的;
即使透明的颜色是黑色,窗口也是全白色的。调整窗口大小和移动窗口都没有帮助。答案会很大,因此我建议您阅读一些教程:) 链接:
另一件事:尝试在现代opengl版本3上使用fucus。及以上。谢谢!看起来是个好的开始。你为什么不想用包装纸呢?我强烈建议您使用或类似的工具来为您做这类事情。