首页 > 代码库 > c# Wndproc的使用方法

c# Wndproc的使用方法

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;             }         }