C# 窗体如何嵌入到win7桌面中,置于桌面图标之下?
我想将C#窗体放到桌面图标下面,如下代码在win7中不管用:publicpartialclassForm1:Form{[DllImport("user32.dll",Ch...
我想将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#窗体嵌入桌面,置于桌面图标下面啊?
帮帮偶啊~~! 展开
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#窗体嵌入桌面,置于桌面图标下面啊?
帮帮偶啊~~! 展开
3个回答
展开全部
1、首先应该把MDI窗体ShowInTaskbar设置为true,在vs2008中默认就是true;
2、然后分别添加NotifyIcon
如果想实现最大化最小化为NotifyIcon增加ContextMenuStrip控件;
再把NotifyIcon的ContextMenuStrip属性值指向ContextMenuStrip,并且把NotifyIcon的Icon指定一张*.Icon格式的图片文件以便显示在任务栏中;
为NotifyIcon添加名称为notifyIconSystem_MouseDoubleClick的MouseDoubleClick事件;
为MDI窗体添加名为MainForm_SizeChanged的SizeChanged事件;
大体思路为此
2、然后分别添加NotifyIcon
如果想实现最大化最小化为NotifyIcon增加ContextMenuStrip控件;
再把NotifyIcon的ContextMenuStrip属性值指向ContextMenuStrip,并且把NotifyIcon的Icon指定一张*.Icon格式的图片文件以便显示在任务栏中;
为NotifyIcon添加名称为notifyIconSystem_MouseDoubleClick的MouseDoubleClick事件;
为MDI窗体添加名为MainForm_SizeChanged的SizeChanged事件;
大体思路为此
更多追问追答
追问
额.....我不是要做MDI窗体,也不是要做任务栏托盘图标,而是要将窗体放到桌面图标的下面,系统是win7;
上述方法无效啊,不知大哥还有其他办法吗?
追答
桌面图标的下面?? 哪里是桌面图标的下面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个需求确实好理解,但是我好像没见过这种窗体,有没有这样的实例可以让我瞅瞅
追问
有,我见过但一时想不起来,软件现在应该还在;
并且如上代码在XP以及更老的系统中,可以实现上述效果!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-07
展开全部
兄弟,我也在找,要是你知道怎么实现你的效果后,记得hi我一下!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询