什么是真正的桌面背景HWND

What is the real desktop background HWND?

本文关键字:桌面 背景 HWND 什么      更新时间:2023-10-16

我想编写一个使用OpenGL创建动画桌面背景的程序。因此,我需要知道包含桌面图片的 HWND。完美的将是我如何找到该特定窗口的代码示例。

如果您仔细阅读文档,您会发现一定不能在根/桌面窗口上设置像素格式。此外,桌面窗口的 DC 也不是独占的。这两种约束都使得无法直接在桌面窗口上创建 OpenGL 上下文。另请注意,对于典型的 Windows 外壳(资源管理器.exe),桌面实际上是 Win32 图标视图,由资源管理器.exe进程拥有,并且是桌面窗口的子级。

您可以做的是创建一个与桌面窗口大小相同的 FBO,其像素格式与桌面窗口的 DC 兼容。然后渲染到FBO将其内容读入DIBSection使用CreateDIBPatternBrushPt创建HBRUSH并使用SetClassLongPtr设置桌面窗口的背景画笔。