qt捕獲全局windows消息

qt  如何捕獲全屏的鼠標事件,這個帖子上面主要講述了下嵌入式qt怎麼抓取系統級消息,不過從這篇文章中我也看到了但願,有個回覆說winEventFilter支持這種方式,而後我就順着這個線索找到了nativeEventFilter方法,最終試驗成功。

首先是讓你本身的類繼承自QAbstractNativeEventFilter,而後經過QCoreApplication來註冊你的窗口類,代碼以下:
app.installNativeEventFilter(m_MainWindow);

最後在nativeEventFilter方法中就能獲取到系統級事件,個人qt5.5.觀看qt的幫助文檔,如圖1所示
html

圖1windows

 


bool CCailianMainWindow::nativeEventFilter(const QByteArray & eventType, void * message, long * result)
{
    if (eventType == "windows_generic_MSG" || eventType == "windows_dispatcher_MSG")
    {
        MSG * pMsg = reinterpret_cast<MSG *>(message);

        if (pMsg->message == WM_NCMOUSEMOVE)
        {
            //獲取到系統鼠標移動,能夠作像qq同樣的忙碌檢測
        }
    }

    return false;
}

調試結果如圖2所示

app

圖2post

 

若是您以爲文章不錯,不妨給個 打賞,寫做不易,感謝各位的支持。您的支持是我最大的動力,謝謝!!! 

 

  


很重要--轉載聲明spa

  1. 本站文章無特別說明,皆爲原創,版權全部,轉載時請用連接的方式,給出原文出處。同時寫上原做者:朝十晚八 or Twowords
  2. 如要轉載,請原文轉載,如在轉載時修改本文,請事先告知,謝絕在轉載時經過修改本文達到有利於轉載者的目的。 

相關文章
相關標籤/搜索