加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[VB.NET]点击窗体标题时出现的问题.

发布时间:2020-12-16 23:45:01 所属栏目:大数据 来源:网络整理
导读:点击窗体标题时出现的问题. 不知道大家试过没有。一旦你双击窗体的标题栏时,窗体的大小将发生改变,如何制止这个情况的出现? __________________________________________________________________________ 隐藏标题栏。 ________________________________
点击窗体标题时出现的问题. 不知道大家试过没有。一旦你双击窗体的标题栏时,窗体的大小将发生改变,如何制止这个情况的出现? __________________________________________________________________________ 隐藏标题栏。 __________________________________________________________________________ 代码中加上 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的MaximizeBox=false不就行了吗 __________________________________________________________________________ 把最大化的按钮设置为False就行了. 或者设置FormBorderStyle为不可以改变大小的,比如: this.FormBorderStyle = FormBorderStyle.FixedDialog __________________________________________________________________________ 你们自己试一下吧,设成之后,双击窗体标题的中间,呵呵,__________________________________________________________________________ 设置form的MaximizeBox=false完全可以啊(.Net005中试验过了)。 但是仅仅设置this.FormBorderStyle = FormBorderStyle.FixedDialog好像不行耶 __________________________________________________________________________ 1.设置 MaximizeBox = false; 2. protected override void WndProc(ref Message m) { if (m.Msg == 0xA3) return; base.WndProc(ref m); } __________________________________________________________________________ 是的,这个不是设置maxsize为false就可以做到的么,还有什么疑义么 __________________________________________________________________________ 我知道为什么有些人说设置 MaximizeBox=false 就可以了。事实上应该说明的是,窗体在windowstate=Maximized的情况下,你双击窗体标题,你就会发现他跑回来了,如果你不处于Maximized状态,他就不会有变化。 为什么要讨论这个问题,那是因为很多情况下,作windows 应用程序,窗体的windowstate都是处于Maximized状态的,而如果有哪个用户用你的程序的时候,他双击了窗体标题,如果你的MaximizeBox=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 __________________________________________________________________________

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读