C# 窗体如何嵌入到win7桌面中,置于桌面图标之下?

我想将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#窗体嵌入桌面,置于桌面图标下面啊?
帮帮偶啊~~!

第1个回答  2013-09-04
1、首先应该把MDI窗体ShowInTaskbar设置为true,在vs2008中默认就是true;
2、然后分别添加NotifyIcon
如果想实现最大化最小化为NotifyIcon增加ContextMenuStrip控件;
再把NotifyIcon的ContextMenuStrip属性值指向ContextMenuStrip,并且把NotifyIcon的Icon指定一张*.Icon格式的图片文件以便显示在任务栏中;
为NotifyIcon添加名称为notifyIconSystem_MouseDoubleClick的MouseDoubleClick事件;
为MDI窗体添加名为MainForm_SizeChanged的SizeChanged事件;

大体思路为此追问

额.....我不是要做MDI窗体,也不是要做任务栏托盘图标,而是要将窗体放到桌面图标的下面,系统是win7;
上述方法无效啊,不知大哥还有其他办法吗?

追答

桌面图标的下面?? 哪里是桌面图标的下面。

追问

桌面图标,如下图所示:

将窗体放到桌面图标的下面,就是让桌面图标显示在窗体前面,让桌面图标挡住窗体,而桌面背景又被窗体挡住,这个层叠关系不难理解啊?

第2个回答  2013-09-06
你这个需求确实好理解,但是我好像没见过这种窗体,有没有这样的实例可以让我瞅瞅追问

有,我见过但一时想不起来,软件现在应该还在;
并且如上代码在XP以及更老的系统中,可以实现上述效果!

第3个回答  2013-09-07
兄弟,我也在找,要是你知道怎么实现你的效果后,记得hi我一下!本回答被提问者采纳
相似回答