2017-06-07 25 views
0

QAbstractNativeEventFilterでQtでカスタムメッセージを受信したいと考えています。基本的に実装にswitch WM_USER + 1:を追加しましたが、何も送信していないのに通知が届きました。私は、Qtが内部的にユーザメッセージを使用していると仮定します。 QTが使用している最後のIDを知る方法はありますか?Qtとwindowsメッセージ

答えて

5

The WM_USER range of messages is owned by the code that called RegisterClass().この場合、それはその範囲をそれ自身の目的のために使用しているQtになります。使用できるメッセージの範囲を確認するには、Qtのドキュメントを参照する必要があります。これはWM_APPの範囲であるかもしれませんが、もしQtがそのものをとしていれば(そして、あなたにメッセージをリクエストする方法はありません)、登録されたウィンドウメッセージとその欠点を扱わなければなりません。再度、Qtのドキュメントを確認してください。

EDIT私は

初めて十分に明確でなかったため、ませは、あなたが使用できるいくつかのランダムなWM_USER + nを見つけようとします。私がそこに置いたリンクのポイントは、Qtが望むものは何でもWM_USERのメッセージを自由に使用できることです。これとあなたのコードを無視してください Qtの将来のバージョンで中断します。あなた Qtは、具体的WM_APP範囲内のメッセージのセットを定義するかどうかを確認するためにQtのドキュメントに相談しなければなりません(でもWM_USER範囲内か、これは明示的に文書に記載しなければならない)を使用するなど、安全、そうでない場合は選択肢なしですが、RegisterWindowMessage()を呼び出してシステム全体の名前付きメッセージを登録する必要があります。必要に応じてQtメーリングリストに問い合わせてください。現在のソースがQtの将来のバージョンの契約ではないため、ソースを確認することはできません。

+0

私はQtヘッダーに最後に使用されたWM_USER + n値を定義するマクロまたはsmthがあることを期待しましたが、悲しいことに、QtソースのWM_USERを検索しても無意味な値を保持するだけでした。悲しい:( –

+0

@ RudolfsBundulis私の編集を参照してください。 – andlabs

関連する問題