Windows 不使用';你不占整个窗户吗?

Windows 不使用';你不占整个窗户吗?,windows,winapi,opengl,Windows,Winapi,Opengl,我想要构建和编辑,类似于许多3d编辑器,在窗口的某个地方有一个opengl视口,窗口的其余部分包含窗口控件。我该怎么做?到目前为止,我设法创建了一个opengl渲染到其所有区域的窗口。尽管最好避免渲染到opengl窗口,除非通过opengl渲染,但控件本身就是子窗口,因此简单地渲染到父窗口的一部分应该没有问题(可以帮助)。Windows将负责在父窗口的“顶部”绘制控件。或者,您可以创建自己的子窗口,并将OpenGL上下文附加到子窗口。然后可以渲染整个子窗口。我知道Blendr完全在OpenGL中

我想要构建和编辑,类似于许多3d编辑器,在窗口的某个地方有一个opengl视口,窗口的其余部分包含窗口控件。我该怎么做?到目前为止,我设法创建了一个opengl渲染到其所有区域的窗口。

尽管最好避免渲染到opengl窗口,除非通过opengl渲染,但控件本身就是子窗口,因此简单地渲染到父窗口的一部分应该没有问题(可以帮助)。Windows将负责在父窗口的“顶部”绘制控件。或者,您可以创建自己的子窗口,并将OpenGL上下文附加到子窗口。然后可以渲染整个子窗口。

我知道Blendr完全在OpenGL中渲染,没有Windows控件。否则,没有。(在我看来,第二种方法似乎更简洁,但第一种方法的效率会稍高一些,因为额外的窗口并不是完全免费的。)我知道UnrealEngine有一个单独的窗口,它可以将所有控件呈现在其中。因此,我认为大多数大型3D引擎/编辑器使用单个D3D或OpenGL曲面,并在其上渲染自己的小部件。也就是说,使用传统控件创建编辑器并在一些opengl子窗口中混合使用,应该没有什么错。@ChrisBecke你是说所有这些整洁的主题控件都不是“真正的”win32控件,而是更像opengl对象?你设法在windows API中创建了一个opengl窗口,这不是世界上最简单的事情,所以我假设问题不是“我如何调用glViewPort”,因为这要容易得多。对吗?那不是我的问题。(你已经回答了:p)