码迷,mamicode.com
首页 > 其他好文 > 详细

c# Wndproc的使用方法

时间:2014-08-13 12:49:36      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   blog   使用   os   io   strong   for   ar   

protected override void WndProc(ref Message m) 
{ 
    const int WM_SYSCOMMAND = 0x0112; 
    const int SC_CLOSE = 0xF060; 
    if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE) 
    { 
        // 屏蔽传入的消息事件 
        this.WindowState = FormWindowState.Minimized; 
        return; 
     } 
    base.WndProc(ref m); 
}

  

  protected override void WndProc(ref    Message m)
          {
              const int WM_SYSCOMMAND = 0x0112;
              const int SC_CLOSE = 0xF060;
              const int SC_MINIMIZE = 0xF020;
              if (m.Msg == WM_SYSCOMMAND && ((int)m.WParam == SC_MINIMIZE || (int)m.WParam == SC_CLOSE))
              {
                  //最小化到系统栏 
                 this.Hide();
                  return;
              }
              base.WndProc(ref    m);
          } 

重写 WndProc函数来同时实现无标题栏的窗体移动和禁止双击窗体最大化

 

protected override void WndProc(ref Message m)
         {
             const int WM_NCHITTEST = 0x84;
             const int HTCLIENT = 0x01;
             const int HTCAPTION = 0x02;
             const int WM_SYSCOMMAND = 0x112;
             const int SC_MAXMIZE = 0xF030;
             const int WM_NCLBUTTONDBLCLK = 0xA3;
             switch (m.Msg)
             {
                 case 0x4e:
                 case 0xd:
                 case 0xe:
                 case 0x14:
                     base.WndProc(ref m);
                     break;
                 case WM_NCHITTEST://鼠标点任意位置后可以拖动窗体
                     
                    this.DefWndProc(ref m);
                     if (m.Result.ToInt32() == HTCLIENT)
                     {
                         m.Result = new IntPtr(HTCAPTION);
                         return;
                     }
                     break;
                 case WM_NCLBUTTONDBLCLK://禁止双击最大化
                     Console.WriteLine(this.WindowState);
                     
                        return;
 
                   
                    break;
 
                default:
                     
                    base.WndProc(ref m);
                     break;
             }
         }

 

  

 

c# Wndproc的使用方法,布布扣,bubuko.com

c# Wndproc的使用方法

标签:style   blog   使用   os   io   strong   for   ar   

原文地址:http://www.cnblogs.com/icejd/p/3909680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!