点击窗体
标题时出现的问题. 不知道大家试过没有。一旦你双击窗体的
标题栏时,窗体的大小将发生改变,如何制止这个情况的出现? __________________________________________________________________________ 隐藏
标题栏。 __________________________________________________________________________
代码中
加上 protected override void WndProc(ref Message m) { base.WndProc (ref m); if(m.Msg == 0x84) //不让拖动
标题栏 { if ((IntPtr)2 == m.Result) m.Result = (IntPtr)1; } if(m.Msg==0x00A3) //双击
标题栏无反应 m.WParam=System.IntPtr.Zero; } __________________________________________________________________________ 楼上的
方法我试了下 没什么
效果 __________________________________________________________________________ 难道.Net 无法直接截获非客区消息? __________________________________________________________________________ 不清楚具体你想做成怎么样的,你的问题的话,我的理解就是把窗口的最大值跟最小值设定成固定值就行了啊。。随便怎么点都不会有变化。。呵呵。。 __________________________________________________________________________ 呵呵,第一个想到的也是楼上的
方法,把maximumSize跟size设成一样的大小。 但是,这种
方法还是响应了鼠标的双击。双击后form会跑到左上角~ gz __________________________________________________________________________ 其实我是
屏蔽过这个消息的,但是,我用了一个第三方的控件来美化窗体界面后,这个消息就不能
屏蔽了,苦。 __________________________________________________________________________ WM_NCLBUTTONDBLCLK //0x00A3 这个消息可以
屏蔽么? 我试了下截获不到(VS2005) 我机器有问题? __________________________________________________________________________ 设置form的Maximize
Box=false不就行了吗 __________________________________________________________________________ 把最大化的按钮设置为False就行了. 或者设置FormBorderStyle为不可以改变大小的,比如: this.FormBorderStyle = FormBorderStyle.FixedDialog __________________________________________________________________________ 你们自己试一下吧,设成之后,双击窗体
标题的中间,呵呵,__________________________________________________________________________ 设置form的Maximize
Box=false完全可以啊(.Net005中试验过了)。 但是仅仅设置this.FormBorderStyle = FormBorderStyle.FixedDialog好像不行耶 __________________________________________________________________________ 1.设置 Maximize
Box = false; 2. protected override void WndProc(ref Message m) { if (m.Msg == 0xA3) return; base.WndProc(ref m); } __________________________________________________________________________ 是的,这个不是设置maxsize为false就可以做到的么,还有什么疑义么 __________________________________________________________________________ 我知道为什么有些人说设置 Maximize
Box=false 就可以了。事实上应该说明的是,窗体在windowstate=Maximized的情况下,你双击窗体
标题,你就会发现他跑回来了,如果你不处于Maximized状态,他就不会有变化。 为什么要讨论这个问题,那是因为很多情况下,作windows 应用程序,窗体的windowstate都是处于Maximized状态的,而如果有哪个
用户用你的程序的时候,他双击了窗体
标题,如果你的Maximize
Box=false的话,他就会现程序没法用了。我也作为,在窗体大小变化的事件中强制windowstate=maximized,那样的话,画面会一闪一闪的,非常不专业。如果在慢的机器上用的话,实在是太丑。 __________________________________________________________________________ "
代码中
加上 protected override void WndProc(ref Message m) { if(m.Msg == 0x84) //不让拖动
标题栏 { if ((IntPtr)2 == m.Result) m.Result = (IntPtr)1; } if(m.Msg==0x00A3) //双击
标题栏无反应 m.WParam=System.IntPtr.Zero; base.WndProc (ref m); } " base.WndProc (ref m);是不是应该放在后面????????????? __________________________________________________________________________ Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m.Msg = &HA3 Then m.WParam = System.IntPtr.Zero MyBase.WndProc(m) End Sub __________________________________________________________________________