我想编写一个使用OpenGL创建动画桌面背景的程序。因此,我需要知道包含桌面图片的HWND。完美将是一个代码示例我如何找到特定的窗口。
答案 0 :(得分:1)
如果您仔细阅读文档,则会发现您不能在根/桌面窗口中设置像素格式。此外,桌面窗口的DC不是专有的。这两种约束都使得无法直接在桌面窗口上创建OpenGL上下文。另请注意,对于典型的Windows shell(explorer.exe),桌面实际上是一个Win32图标视图,由explorer.exe进程拥有并且是桌面窗口的子项。
您可以做的是创建一个与桌面窗口大小相同的FBO,其pixelformat与桌面窗口的DC兼容。然后渲染到FBO将其内容读入DIBSection,使用CreateDIBPatternBrushPt创建HBRUSH并使用SetClassLongPtr设置桌面窗口的背景画笔。