2014-02-15 92 views
0

我有一个自定义小部件类继承自GtkWidget,我想在Win32下用作OpenGL绘图表面。为GTK小部件设置WNDCLASS风格

现在我需要一个Win32-Window作为绘图区域,在窗口类中设置了CS_OWNDC标志。 GTK +是否使用Win32-Windows使其成为可能,如果是这样,我该如何修改所使用的WNDCLASS结构?

编辑:由于在较新版本的Windows中设备上下文的数量不受限制,因此只需获取并从不释放DC似乎可以做到这一点。但当然这只是一个解决方法,所以我会保持这个线程打开,以防有人有想法。

回答

1

你不应该试图进入GTK +内部窗口管理的方式。 GTK +拥有一个名为“GtkGLExt”的OpenGL小部件,它是在GTK的附加库中实现的。还有一个GtkGLArea,它是一个较旧的实现,并已被弃用。

使用GtkGLExt处理OpenGL的所有东西。 https://developer.gnome.org/gtkglext/stable/

+0

不幸的是,GtkGLExt不适用于GTK 3.存在一个端口,但它仅限于X11。 –

+0

@datenwolf自3.16开始,GtkGLArea在GTK + 3中。 – user877329