+ -
当前位置:首页 → 问答吧 → 禁止用户拖动窗体(情况有点复杂内详)

禁止用户拖动窗体(情况有点复杂内详)

时间:2011-11-26

来源:互联网

我是这个问题:在QT中禁止窗体移动(看了这个标题您先别急,请看完下面的说明,谢谢您)

  首先我的窗口是必须有标题栏.也就是说,不能设置flag为Frameless(我的窗口是Qt::Tool的)。
  其次我是要禁止用户通过拖动标题栏从而拖动窗口,而我自己程序里面要能够用
Move()移动窗口。所以我尝试过用eventFilter 的MoveEvent事件来处理。但是呢也不行.
  再次如果通过按下鼠标来判断是否是用户在用鼠标拖动标题栏(如果检测到鼠标下了,并且收
到了MoveEvent,就是用户在拖动,这时候禁止其拖动)这种方法对我的程序来说也有点问题。


所以恳请高手,帮说一下其它的解决办法。小弟万分感谢...

作者: lh844386434   发布时间: 2011-11-26

在窗口显示之前重新构造窗口
在PreCreateWindow里
cs.修改的内容。。。

作者: itol925   发布时间: 2011-11-26

捕获WM_NCHITTEST消息
if (DefWindowProc(....) == HTCAPTION ) 
 return HTCLIENT;

当鼠标点击标题栏时,让系统认为是点击在客户区。

作者: gameslq   发布时间: 2011-11-27