C#实现 Win+D不让窗体最小化
如题C#实现不让窗体最小化Win+D也不能最小化就跟QQ主窗体的是一样的QQ里是C++调用的WindowsAPI函数setparent()方法吧?C#我不会用。。网上说有...
如题
C#实现 不让窗体最小化 Win+D 也不能最小化 就跟QQ 主窗体的是一样的
QQ里是C++调用的Windows API 函数 setparent()方法吧?
C# 我不会用。。
网上说有一种方法是 调用setparent()方法把 窗体的 父容器设置为桌面
但是 我不会调用诶。。有哪位高手肯赐教。。感激不尽。 展开
C#实现 不让窗体最小化 Win+D 也不能最小化 就跟QQ 主窗体的是一样的
QQ里是C++调用的Windows API 函数 setparent()方法吧?
C# 我不会用。。
网上说有一种方法是 调用setparent()方法把 窗体的 父容器设置为桌面
但是 我不会调用诶。。有哪位高手肯赐教。。感激不尽。 展开
4个回答
展开全部
API正是神奇!!
今天看到个SetParent这个函数有点神奇就测试了一个果然不同凡响!1
如果在.net中做一个顶级窗体很简单
可是当你点显示桌面的时候他回最小化!
怎么才能使它不最小化呢?在必须在它的SizeChanged事件里面写:
if (this.WindowState==FormWindowState.Minimized)
{
this.WindowState=FormWindowState.Normal;
}
可是你如果SetParent函数就不用在这里写了!
申明:
[DllImport("user32.dll", EntryPoint="SetParent")]
public static extern int SetParent (int hWndChild, int hWndNewParent);
这个函数的第一个参数的要是要一个要处理第 窗口的句柄
第二个参数为你要把这个窗口放到上面的那个窗口的句柄:
如果你用SetParent(this.Handle.ToInt32(),this.Handle.ToInt32());
窗体就是定级窗体了且不会因为你按了显示桌面它最小化!
同样如果你能得到桌面窗体的句柄那么窗体将会永远在任何窗体的最下面!!
可是怎么得到桌面的窗口的句柄呢!!
呵呵!!
API提供了一找窗口句柄的APIFindWindow (string lpClassName,string lpWindowName);
lpClassName参数为窗口所属的类名lpWindowName为窗口的标题
呵呵
现在我们就可以用这函数得到桌面窗口的句柄了
FindWindow("Progman", "Program Manager");
现在它就能返回桌面窗口的句柄了
嘿嘿
再用SetParent函数将窗体填加到桌面上看看!!
嘿嘿是不是很爽啊!!!!
http://blog.csdn.net/hawk521/archive/2006/08/25/1119012.aspx
今天看到个SetParent这个函数有点神奇就测试了一个果然不同凡响!1
如果在.net中做一个顶级窗体很简单
可是当你点显示桌面的时候他回最小化!
怎么才能使它不最小化呢?在必须在它的SizeChanged事件里面写:
if (this.WindowState==FormWindowState.Minimized)
{
this.WindowState=FormWindowState.Normal;
}
可是你如果SetParent函数就不用在这里写了!
申明:
[DllImport("user32.dll", EntryPoint="SetParent")]
public static extern int SetParent (int hWndChild, int hWndNewParent);
这个函数的第一个参数的要是要一个要处理第 窗口的句柄
第二个参数为你要把这个窗口放到上面的那个窗口的句柄:
如果你用SetParent(this.Handle.ToInt32(),this.Handle.ToInt32());
窗体就是定级窗体了且不会因为你按了显示桌面它最小化!
同样如果你能得到桌面窗体的句柄那么窗体将会永远在任何窗体的最下面!!
可是怎么得到桌面的窗口的句柄呢!!
呵呵!!
API提供了一找窗口句柄的APIFindWindow (string lpClassName,string lpWindowName);
lpClassName参数为窗口所属的类名lpWindowName为窗口的标题
呵呵
现在我们就可以用这函数得到桌面窗口的句柄了
FindWindow("Progman", "Program Manager");
现在它就能返回桌面窗口的句柄了
嘿嘿
再用SetParent函数将窗体填加到桌面上看看!!
嘿嘿是不是很爽啊!!!!
http://blog.csdn.net/hawk521/archive/2006/08/25/1119012.aspx
展开全部
要像QQ那样只要将窗体的属性ShowInTaskbar设置成false就行了,然后在拉一个notifyIcon控件(添加一个停放在任务栏上的图标程序),然后再添加一个点击图标程序时激发的事件就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看到标题我想到的是不能,进来看看想想是不是可以屏蔽掉 win +d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#唯一能使用的几个钩子中就包括键盘钩子,你baidu、google就能搜索到了,我就不详细写了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询