1

MFC アプリケーションを Win32 アプリケーションに移植しています。取得する必要があります。

AfxGetThreadState()->m_lastSentMsg

Win32 での値。

4

1 に答える 1

3

MFC が行っていることは、最後に受信したメッセージがクラスでどのようなものであったかを記録することだけです。このようなものをスレッドメッセージポンプに追加できると確信しています...

編集:スレッドローカルストレージで「グローバル」を定義するために __declspec( thread ) を調べる価値もあります。これがMFCが行うことです...

編集:メッセージポンプがあります。次のような変数を最初に宣言するとします。

__declspec( thread ) MSG g_LastMsg = 0;

次に、各スレッドのメッセージ ポンプを次のように変更する必要があります。

MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
            g_LastMsg = msg;
    TranslateMessage( &msg );
    DispatchMessage( &msg );
}

最後に「ポンプされた」メッセージが何であるかを知りたいときはいつでも、 g_LastMsg 変数をチェックしてください...

必要に応じて、ウィンドウ プロシージャ内からメッセージ構造体を作成することもできます。完全にあなた次第...

于 2009-12-09T09:51:36.300 に答える