标题:QT中的winEvent与nativeEvent
作者:suzhuorui
日期:2020-08-07 09:35
内容:
Qt中的winEvent与nativeEvent到底如何使用,或者说里面的参数message->message的值有哪些,分别是什么意思。result的意义是什么,有哪些值,分别是什么意义。
如何在winEvent中判断鼠标左键是否按下。
bool MainWindow::winEvent(MSG *message, long *result)
{
switch (message->message) {
case WM_NCHITTEST:
qDebug()frameGeometry().x();
int yPos = GET_Y_LPARAM(message->lParam) - this->frameGeometry().y();
//处理鼠标位置样式与点击后拖拽
//QPoint p(xPos,yPos);
//this->setMouseStyle(getMouseArea(p),p);
//处理鼠标点击标题
QWidget* pt = this->childAt(xPos, yPos);
if (pt == ui->title) {
*result = HTCAPTION;
return true;
}
}
return false;
}上面代码是用来检测是否点击自定义的标题栏,而且可以点击标题栏后拖动窗口,双击标题栏最大化窗口。但是,为什么呢?怎么实现的?
我知道WM_NCHITTEST是鼠标事件(鼠标按下移动和释放等),那怎么在其中检测鼠标左键按下呢?
#1 [mh_0915 08-07 10:53]
Qt4 到Qt5 winEvent被nativeEvent代替了,你单纯想检测鼠标事件可以直接在mouseEvent里面判断