1

我正在尝试在桌面上绘制动画(极地时钟是我的最终目标),但我似乎无法在桌面上绘制。

我可以使用以下代码获取窗口的句柄和 DC:

HWND progMan  = FindWindow("progMan", NULL); 
HWND shellDLL = FindWindowEx(progMan, NULL, "SHELLDLL_DefView", NULL);
HWND sysList  = FindWindowEx(shellDLL, NULL, "SysListView32", NULL);
HDC hdc = GetDC(progMan);

我可以使用此代码编写文本,这在访问其他窗口或控件时有效:

while(true) TextOut(hdc, 50, 50, "Hello World!", 13);

但我似乎无法让它在 SysListView32 控件上工作。

这是 Windows 7 的一些怪癖还是我的代码只是被窃听了?

编辑:我想让它工作,但最坏的情况是,还有其他人有其他方法可以在图标后面绘制到桌面吗?

4

2 回答 2

1

用 WorkerW 替换 Progman,它应该在大多数情况下工作。但是还有更多内容,因此请在网络上搜索详细信息。

于 2011-10-06T20:07:41.900 回答
0

尝试 Spy 以获取 Windows 的正确顺序。我以前写过这段代码,不确定我现在是否有它。但是 Spy 帮了我很多。尽管此链接与桌面无关 - http://blogs.msdn.com/b/oldnewthing/archive/2004/07/20/188696.aspx,但您也可以从中获得一些帮助。

于 2011-04-14T06:46:38.510 回答