我写了一个程序,在桌面图标下绘制桌面壁纸上的小部件,一切都很好.但是我揭示了一个奇怪的错误 - 我的程序在其他一些计算机上不起作用 - 它们在启动后显示相同的桌面没有小部件.
那么,任何人都有任何经验,在这方面有一些知识吗?请帮我!:)
(我找不到附近的任何计算机,其中小部件不起作用,在我的计算机上运行良好.我写了很多测试程序,其尝试用相当的方法在桌面上绘制任何东西,但测试在我的朋友计算机中也没有显示任何内容. )
绘图方法:
我写了一个dll,找到桌面窗口(progman-> child-> child))并创建一个钩子并为桌面安装自己的窗口过程.在窗口过程中,我挂钩WM_ERASEBKGND:
case WM_ERASEBKGND:
HDC hdc = (HDC)wparam;
PaintDesktop(hdc);
WidgetPaint(hdc);
return 1;
Run Code Online (Sandbox Code Playgroud)
//我跳过这段代码来获取和设置剪裁区域以便快速绘制.(我尝试了所有剪辑和没有剪裁的组合)
在测试中我也尝试在WM_PAINT消息中绘制具有相同结果的小部件 - 所有这些都已经在我身上工作,但并不适用于所有朋友.
upd:我解决了!:)