我想将C#窗体放到桌面图标下面,如下代码在win7中不管用:
public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow([MarshalAs (UnmanagedType.LPTStr)] string lpClassName, [MarshalAs(UnmanagedType.LPTStr)] string lpWindowName);
[DllImport("user32")]
private static extern IntPtr FindWindowEx(IntPtr hWnd1, IntPtr hWnd2, string lpsz1, string lpsz2);
[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
IntPtr pWnd = FindWindow("Progman", null);
pWnd = FindWindowEx(pWnd, IntPtr.Zero, "SHELLDLL_DefVIew", null);
pWnd = FindWindowEx(pWnd, IntPtr.Zero, "SysListView32", null);
//IntPtr tWnd = new System.Windows.Interop.WindowInteropHelper(this).Handle;
SetParent(this.Handle, pWnd);
}
}
请问在Win7中如何将C#窗体嵌入桌面,置于桌面图标下面啊?
帮帮偶啊~~!
额.....我不是要做MDI窗体,也不是要做任务栏托盘图标,而是要将窗体放到桌面图标的下面,系统是win7;
上述方法无效啊,不知大哥还有其他办法吗?
桌面图标的下面?? 哪里是桌面图标的下面。
追问桌面图标,如下图所示:
将窗体放到桌面图标的下面,就是让桌面图标显示在窗体前面,让桌面图标挡住窗体,而桌面背景又被窗体挡住,这个层叠关系不难理解啊?
有,我见过但一时想不起来,软件现在应该还在;
并且如上代码在XP以及更老的系统中,可以实现上述效果!