禁止用户拖动窗体(情况有点复杂内详)
时间:2011-11-26
来源:互联网
我是这个问题:在QT中禁止窗体移动(看了这个标题您先别急,请看完下面的说明,谢谢您)
首先我的窗口是必须有标题栏.也就是说,不能设置flag为Frameless(我的窗口是Qt::Tool的)。
其次我是要禁止用户通过拖动标题栏从而拖动窗口,而我自己程序里面要能够用
Move()移动窗口。所以我尝试过用eventFilter 的MoveEvent事件来处理。但是呢也不行.
再次如果通过按下鼠标来判断是否是用户在用鼠标拖动标题栏(如果检测到鼠标下了,并且收
到了MoveEvent,就是用户在拖动,这时候禁止其拖动)这种方法对我的程序来说也有点问题。
所以恳请高手,帮说一下其它的解决办法。小弟万分感谢...
首先我的窗口是必须有标题栏.也就是说,不能设置flag为Frameless(我的窗口是Qt::Tool的)。
其次我是要禁止用户通过拖动标题栏从而拖动窗口,而我自己程序里面要能够用
Move()移动窗口。所以我尝试过用eventFilter 的MoveEvent事件来处理。但是呢也不行.
再次如果通过按下鼠标来判断是否是用户在用鼠标拖动标题栏(如果检测到鼠标下了,并且收
到了MoveEvent,就是用户在拖动,这时候禁止其拖动)这种方法对我的程序来说也有点问题。
所以恳请高手,帮说一下其它的解决办法。小弟万分感谢...
作者: lh844386434 发布时间: 2011-11-26
在窗口显示之前重新构造窗口
在PreCreateWindow里
cs.修改的内容。。。
在PreCreateWindow里
cs.修改的内容。。。
作者: itol925 发布时间: 2011-11-26
捕获WM_NCHITTEST消息
if (DefWindowProc(....) == HTCAPTION )
return HTCLIENT;
当鼠标点击标题栏时,让系统认为是点击在客户区。
if (DefWindowProc(....) == HTCAPTION )
return HTCLIENT;
当鼠标点击标题栏时,让系统认为是点击在客户区。
作者: gameslq 发布时间: 2011-11-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28