Qt:当前窗口注册全局键盘消息

来源:互联网 发布:java文件命名 编辑:程序博客网 时间:2024/05/22 05:00

1,mian.cpp 进行注册,代码如下:

/*< widget 窗口类注册*/

widget m_widget;

app.installEventFilter(m_widget);

2,窗口类重写nativeEventFilter()函数:

virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *)

3,pMsg->wParam中取对应的虚拟键值。

bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
#ifdef Q_OS_WIN
    if (eventType == "windows_generic_MSG") {
MSG *msg = static_cast<MSG *>(message);
switch (msg->message)
{
case WM_KEYDOWN:
{
if (VK_F1 == msg->wParam)
{
qDebug() << "F1";
}

}

default:
            break;

}

     }

#endif
    return false;/*< 交还给事件循环*/
}