WinAPI窗口中包含的OpenGL/GLUT视图

OpenGL/GLUT view contained in WinAPI window

本文关键字:GLUT 视图 OpenGL 窗口 包含 WinAPI      更新时间:2023-10-16

我想要实现的是这样的东西,即标准窗口中包含的OpenGL视图,以及一些按钮、菜单等。

然而,我正在尝试使用非托管C++和WinAPI来实现这一点(项目需求),如果可能的话,还可以使用(免费)GLUT。

然而,在我看来,使用GLUT唯一可能的事情就是创建一个单独的窗口。我是对的,还是真的有一种方法可以将窗口句柄传递给GLUT进行渲染?还是我完全偏离了轨道?

是的,据我所知,GLUT只允许你绘制完整的窗口,不会让你绘制成任意的矩形。有许多关于在Windows中只使用Win32和WGL API设置渲染上下文的教程。一旦你设置了上下文,你就可以像使用GLUT一样有效地完成所有事情,但要使用适当的WGL函数来交换缓冲区。

这里有一个关于将涉及的内容的高级概述,尽管它确实很重文本,并且与MFC相关,它概述了整个过程。您应该能够查找适当的WGL API引用来实现这一点。

如果您已经决定使用Win32 API,那么使用GLUT真的没有意义。老实说,它会试图对您隐藏一切,包括处理对话框初始化和按钮事件所需的消息泵。如果您的需求不局限于Win32 API,我建议使用更便携的东西,比如Qt,用于支持对话并支持OpenGL的框架。