![]() ![]() I had to find a way to trigger the creation of this WorkerW window. ![]() When I closed the personalization dialog, it took down that new WorkerW window with it. I took the handle of that new WorkerW window and put it into my test program and it was finally able to draw behind the desktop icons, directly above the wallpaper! It turns out, that when you change the desktop wallpaper, a new WorkerW window between the WorkerW instance that holds the Desktop Icons ( SysListView32) and the Desktop Manager is created. So I set up Spy , opened the personalization dialog and changed the wallpaper. In my opinion, such an animation is only possible if the system can somehow draw behind the desktop icons, since setting a wallpaper in rapid succession would be very slow and ugly. When you set a wallpaper manually, you do not see a sudden change, instead the wallpaper is set using a smooth fade animation. What led me to the solution presented in this article was the personalization dialog. It is not possible to position a window in the Z-Order so it is between the desktop icons and the desktop wallpaper. So we can only draw over everything including the icons, or draw under everything including the background. The SysListView32 is now separated from the Program Manager. The following image shows how the window tree is structured in Windows 8. With Windows 8, you cannot turn aero off, so there has to be another way. To make the Windows XP approach work for Windows 7, you had to turn off aero desktop. Windows 7 and Windows 8 are very similar.
0 Comments
Leave a Reply. |