2009-09-26 71 views

回答

1

使用下面的代码和窗口句柄传递给函数,而形式负载的希望完全解决您的问题

public void SetFormOnDesktop(IntPtr hwnd) {  
IntPtr hwndf = hwnd; 
IntPtr hwndParent = FindWindow("ProgMan", null); 
SetParent(hwndf, hwndParent); 
} 
+0

感谢您在提供的代码片段中调用api,我发现了更详细的帖子:http://stackoverflow.com/questions/365094/window-on-desktop – 2010-05-07 07:26:30

0

指定背景时,您可以选择指定HTML文件作为背景。可能是你使用的软件实际上只是显示一个带有日历的HTML页面。

您可以通过单击桌面属性中的背景选项卡中的浏览来指定HTML页面。

+0

谢谢Trainee4Life,日历程序程序不会更改桌面。也许它使用一些挂钩技巧? – 2009-09-28 03:04:26

0

常规窗口使用旧的“永远在最前面”技巧的变体始终在桌面上?至少我是这么做的。

+0

'总在最上面'窗口不能像真正的桌面窗口那样工作,您知道用户体验非常重要。 – 2009-11-14 05:12:25

+0

埃德温,如果你(对吗?)点击桌面上的日历,你是否期望获得桌面的菜单或日历?顺便说一句,当我说“Always on Top变体”时,我的意思是(在这种情况下)使用Desktop的hWnd而不是HWND_TOPMOST。 – Kawa 2009-11-14 18:11:34