C#怎么使得窗体在最下面和最上面切不会因win+d而最小化

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函数将窗体填加到桌面上看看!!

嘿嘿是不是很爽啊!!!!

 

 

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值