2012-01-03 8 views
0

私はQtでマウスクリックイベントを取得しようとしています。このマウスクリックはグローバルでなければならず、マウスが自分のアプリケーションウィンドウ上になくても受け取らなければなりません。私はWinEventのを再実装のWindowsからのメッセージを取得することができますQt WinEvent - 決して募らない

Receive WM_COPYDATA messages in a Qt app

http://developer.qt.nokia.com/forums/viewthread/8103

。私はこれを試し、このイベントをデバッグすることは決してできません。私は何かを逃したか?

緊急を要請してください!ここに私のコードのサンプルです:

bool WindowsUtil::winEvent(MSG * message, long * result) { 
    if (message->message == WM_LBUTTONDOWN) {//never got here at all 
    *result = 0; 
    return true; 
    } 

    // give the event to qt 
    return false; 
} 
+0

アプリケーションとは関係のないイベント(マウス)を取得することも可能ですか? – Ghita

答えて

1

最後にそれを得ました。

低レベルメッセージのパラメータとして、WH_MOUSE_LLという初期設定でSetWindowsHookExを使用しました。 最後に、マウスイベントを取得するためのQtコードは必要ありませんでした。

+0

これの実例を投稿できますか? – chwi

+0

低レベルのマウスフックを使用することは、必ずしもウィンドウに向けられていないマウスメッセージを受信するかなり劇的な方法です。目的の動作を実装する方法として、[Raw Input](http://msdn.microsoft.com/en-us/library/windows/desktop/ms645536.aspx)APIを使用する方法があります。 – IInspectable

関連する問題