【发布时间】:2017-09-01 14:15:29
【问题描述】:
我正在尝试根据官方网站上提供的解释实现一个nativeEventFilter来拦截我的Qt应用程序中的windows消息:
https://doc.qt.io/qt-5/qabstractnativeeventfilter.html#details
但是,他们没有提到应该在哪里/如何定义 eventType,也没有提供的示例显示任何提示。因此,windows_dispatcher_MSG 在我的程序中显然是未定义的。
【问题讨论】:
-
创建一个字节数组
static const QByteArray windowsDispatcherMSG("windows_dispatcher_MSG");并将它与你得到的eventType == windowsDispatcherMSG进行比较。此外,由于QByteArray可以从"windows_dispatcher_MSG"隐式转换,您还应该能够直接比较eventType == "windows_dispatcher_MSG",其中eventType是nativeEventFilter函数的第一个参数 -
我对 static_cast 感到困惑,因为 windowsDispatcherMSG 不是一种类型(因此我不能像 Qt 示例中那样从 void* 转换为 windowsDispatcherMSG* )。很明显,我缺少一些东西。您能否提供一个示例 sn-p 来拦截 WM_DEVICECHANGE 消息。提前致谢。