日期:2014-05-19  浏览次数:20949 次

禁止无边框窗体最大话问题.
做了个无边框窗体.
以下代码是实现无边框窗体的拖动(我从网上找的代码)
protected   override   void   WndProc(ref   Message   m)
  {
          const   int   WM_SYSCOMMAND   =   0x0112;
switch(m.Msg)
{          
  case   WM_NCHITTEST:
            base.WndProc(ref   m);
            if   ((int)m.Result   ==   HTCLIENT)
m.Result   =   (IntPtr)HTCAPTION;
return;
break;
     
}
base.WndProc(ref   m);
}    
+上这段代码后,是可以实现无边框窗体的拖动了.但是鼠标双击窗体时会最大化.
我想禁止鼠标双击最大化.怎样实现?
我在网上查到过.鼠标双几   WM_LBUTTONDBLCLK   =   &H203  
我该怎样用?



------解决方案--------------------
this.MaximizeBox = false;
------解决方案--------------------
无边框窗体移动.有很多方法,何必要处理消息呢???
------解决方案--------------------
是用Visuaal Studio 2005做的吗?把窗口属性的最大化,最小化和关闭的按扭都屏蔽了应该就可以了
------解决方案--------------------
protected override void WndProc(ref Message m)
{
const int WM_NCHITTEST = 0x0084;
const int WM_NCLBUTTONDBLCLK = 0x00A3;
const int WM_SYSCOMMAND = 0x0112;
const int HTCLIENT = 1;
const int HTCAPTION = 2;
switch (m.Msg)
{
case WM_NCHITTEST:
base.WndProc(ref m);
if ((int)m.Result == HTCLIENT)
m.Result = (IntPtr)HTCAPTION;
return;
case WM_NCLBUTTONDBLCLK: // 关键语句
return;
}
base.WndProc(ref m);
}