当前位置: 首页 > 知识库问答 >
问题:

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

李和裕
2023-03-14

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

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

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

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

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

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

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

但这不起作用;即使透明的颜色是黑色,窗口也是白色的。调整窗口大小和移动窗口没有帮助。

共有1个答案

苍意智
2023-03-14

答案将相当大,因此我将指导您阅读一些教程:)

链接:

  • OpenGL MFC应用程序向导
  • OpenGL Windows GUI应用程序-songho

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

另一件事:尝试fucus现代opengl,第3版。以及以上。

 类似资料:
  • 本文向大家介绍使用OpenGL创建窗口 C ++,包括了使用OpenGL创建窗口 C ++的使用技巧和注意事项,需要的朋友参考一下 在OpenGL上制作任何程序的基本步骤是创建一个窗口,所有代码都将在其中工作,因此我们如何创建它?在您的机器上安装OpenGL库之后(Ubuntu的OpenGL安装指南:如何在Ubuntu中安装OpenGL),我们可以开始了。 首先让我们了解如何构建OpenGL程序吗

  • 问题内容: 我正在使用Python 3.3和tkinter制作用于行人逃生模拟的GUI界面。 我已经编写了两个模拟程序,它们运行良好。但是,当尝试从主应用程序调用它们时,我陷入了困境。我希望模拟窗口出现在单独的窗口中(创建主窗口的子窗口)。 如何使用tkinter从主应用程序启动子窗口? 问题答案: 您可以通过创建的实例来创建子窗口。有关更多信息,请参见http://effbot.org/tkin

  • 它在cmd.exe控制台上对我有效: 但是我需要编译python 这不起作用: 、'- name '、' Analysis log Pre-Alpha 1 '、'- onefile '、'- windowed '、'- icon= '、' tk.ico '、' tk.py'])文件“C:\ tools \ python 2-x86 _ 32 \ lib \ subprocess . py”,第52

  • 问题内容: 我想复制一个画布上的所有内容,然后在客户端将它们全部转移到另一个画布上。我认为我会使用and 方法来实现这一点,但是我遇到了一些问题。 我的解决方案是将其获取并存储在Javascript中的Image对象中,然后使用该方法将其放回原处。 但是,我相信该方法会返回一个带有64位编码标签的标签。这似乎不是一个有效的标签,(我总是可以使用一些RegEx删除它),但是子字符串之后的64位编码字

  • 我设置了一个最小应用程序,用GLFW3打开一个空白窗口: 它会导致以下错误: GLFW错误65540:上下文配置文件仅存在于OpenGL 3.2及更高版本 未能打开GLFW窗口... 该应用程序使用Bumblebee的optirun在Linux上运行。当使用freeglut而不是GLFW时,代码可以工作。导致错误的代码有什么问题?

  • 我目前正在重新制作几年前在Swing/AWT中制作的一个游戏,这次使用的是JavaFX。我目前的困境是,原来的游戏有一个“手电筒”,在其中我首先创建了一个空白的黑色层,然后我将创建一个多边形,并用混合模式将其从该层中减去。从那里开始,图层被绘制成透明的,给人一种一切都是黑暗的,玩家拿着手电筒的感觉。 我不知道如何在JavaFX中实现这一点。我想我可以创建一个空白的黑色图像,并且有一些方法可以从中创