我见过这样的事情,我想知道这是否可能,比如说我运行我的应用程序 它会在它下面的任何地方显示渲染。
基本上,在没有窗口的情况下在屏幕上呈现。
可能还是谎言?
注意:要在 Windows 和 C++ 中执行此操作。
最佳答案
可以使用您的应用程序在其他应用程序的窗口上绘图。一旦你找到了你想要的窗口,你就拥有了它的 HWND,然后你就可以像使用你自己的窗口一样使用它来进行绘图。但由于该窗口不知道您已完成此操作,因此当它尝试重绘自己时,它可能会弄乱您在其上绘制的任何内容。
有一些非常复杂的方法可以解决这个问题,其中一些涉及使用窗口“ Hook ”来拦截发送到该窗口的绘图消息,这样您就可以知道它何时重绘,以便您也可以进行重绘。
另一种选择是在窗口上使用裁剪区域。这可以让您给窗口一个不寻常的形状,并且它后面的一切看起来仍然正确。
还有一些方法可以接管桌面背景窗口的绘制,您实际上可以运行一个在桌面背景上绘制动画和东西的应用程序(当桌面仍然可用时)。至少,这在 XP 之前是可能的,不确定它在 Vista/Win7 中是否已经改变。
不幸的是,所有这些选项都太复杂了,如果没有关于您正在尝试做什么的更多信息,无法深入研究。
关于c++ - 在没有窗口的windows桌面上绘制OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935513/