我正在将 MFC 应用程序移植到 Win32 应用程序,我需要得到
AfxGetThreadState()->m_lastSentMsg
Win32 中的值。
我正在将 MFC 应用程序移植到 Win32 应用程序,我需要得到
AfxGetThreadState()->m_lastSentMsg
Win32 中的值。
好吧,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 变量...
如果您愿意,也可以从您的 Window 过程中构建消息结构。完全取决于你...