gpt4 book ai didi

qt - QWidget::nativeEvent 在 Qt 5.11 中无法获得正确的消息

转载 作者:行者123 更新时间:2023-12-05 04:05:08 24 4
gpt4 key购买 nike

在 Qt 5.11 之前,下面的代码可以正常工作。

bool MyQDialogSubclass::nativeEvent(const QByteArray& eventType, void* message, long* result) {
MSG* msg = static_cast<MSG*>(message);
if(msg->message == WM_NCACTIVATE) {
emit ncActive((bool)(msg->wParam));
}
return QWidget::nativeEvent(eventType, message, result);
}

但在 Qt 5.11 中,如果我尝试获取一些 native 消息,msg->message 的值将始终是一些大数字,如 16886792,这应该是一些小数字,如 0x0086(WM_NCACTIVATE)。

调试窗口显示如下 debug capture

我在 Windows 10 17134 64 位上测试了我的项目。

我做了一些研究,但仍然没有头绪。

问题是什么?

最佳答案

似乎 Qt 5.11.1 中存在错误并在 5.11.2 中修复,并且有解决方法:

#if (QT_VERSION == QT_VERSION_CHECK(5, 11, 1))
MSG* msg = *reinterpret_cast<MSG**>(message);
#else
MSG* msg = reinterpret_cast<MSG*>(message);
#endif

查看 Qt 论坛: https://forum.qt.io/topic/93141/qtablewidget-itemselectionchanged/13

关于qt - QWidget::nativeEvent 在 Qt 5.11 中无法获得正确的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com