在没有窗口的Windows桌面上绘制OpenGL

Yon*_*han 6 c++ windows opengl desktop cube

我已经看过这样的事情了,我想知道这是否可行,比如我运行我的应用程序,它会在下面的任何内容上显示渲染.

所以基本上,在没有窗口的情况下在屏幕上呈现.

可能还是谎言?

注意:想在Windows和c ++中执行此操作.

Soa*_*Box 4

可以使用您的应用程序在其他应用程序的窗口上绘图。一旦你找到了你想要的窗口,你就拥有了它的 HWND,然后你就可以像使用你自己的窗口一样使用它来进行绘图。但由于该窗口不知道您已经执行了此操作,因此当它尝试重绘自身时,它可能会弄乱您在其上绘制的任何内容。

有一些非常复杂的方法可以解决这个问题,其中一些涉及使用窗口“挂钩”来拦截到该窗口的绘图消息,以便您知道它何时重绘,以便您也可以进行重绘。

另一种选择是在窗口上使用剪切区域。这可以让你给你的窗户一个不寻常的形状,并且让它后面的一切看起来仍然正确。

还有一些方法可以接管桌面背景窗口的绘制,并且您实际上可以运行一个在桌面背景上绘制动画和内容的应用程序(当桌面仍然可用时)。至少,在 XP 上这是可能的,不确定在 Vista/Win7 中是否有所改变。

不幸的是,所有这些选项都太复杂了,如果没有更多关于您想要做什么的信息,就无法深入了解。