[C#]无边框窗体缩放的虚线框怎么实现

protected override void WndProc(ref Message m)
  {
  switch (m.Msg)
  {
  case 0xA3://拦截鼠标非客户区左键双击消息,决定窗体是否最大化显示
  if (this.MaximizeBox)
  {
  base.WndProc(ref m);
  }
  return;
  case 0x84:
  base.WndProc(ref m);
  Point lpint = new Point((int)m.LParam);
  lpint.Offset(-this.Left,-this.Top);
  //设置可托动的区域
  Rectangle Client = new Rectangle(0, 3,this.Width,25);
  if ( Client.Contains(lpint))
  {
  m.Result = (IntPtr)0x2;
  return;
  }
  Rectangle topboder=new Rectangle(0,0,this.Width,3);
  if(topboder.Contains(lpint))
  {
  m.Result=(IntPtr)0xC;//上边框HTTOP,上方的窗体缩放
  return;
  }
  return;  
   
  }
  base.WndProc(ref m);
  }
//使用方法,直接将此函数复制于窗体代码中,将此窗体设为无边框
//由于时间关系,窗体缩放只写了上面的,其它方向一样,值不一样下面一一给出
//HTTOP=12 <0xC> 
//HTTOPLEFT=13 <0xD> 
//HTTOPRIGHT=14 <0xE> 
//HTLEFT=10 <0xA> 
//HTRIGHT=11 <0xB> 
//HTBOTTOM=15 <0xF>
//HTBOTTOMLEFT=16 <0x10> 
HTBOTTOMRIGHT=17 <0x11>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值