当afxMessageBox打开时,不会调用mfc事件

时间:2010-11-02 06:54:35

标签: c++ mfc

我有一个MFC活动。 我声明它是这样的: const UINT WM_SECEVENT = RegisterWindowMessage(_T(“我的事件”)); 我通过以下方式举办活动: :: PostThreadMessageA(dwCurThreadId,WM_SECEVENT,(WPARAM)pMsgParam,0); 在我的MessageMap中,我写道: ON_REGISTERED_THREAD_MESSAGE(WM_SECEVENT,OnThreadSecEvent);

一切正常,当引发WM_SECEVENT时,OnThreadSecEvent开始运行。 问题是,我也有一个是/否afxMessageBox。当afxMessageBox正在运行时,我的程序不会“捕获”该事件,并且不会调用OnThreadSecEvent。 我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

发布到线程中的窗口而不是线程消息队列本身是否适用于您的目的?

http://support.microsoft.com/kb/183116

使用PostMessage将消息发布到该线程拥有的窗口,而不是使用PostThreadMessage将消息发布到UI线程。由于可以通过辅助消息循环调度指向窗口的消息,因此即使线程未在其主消息循环中运行,消息仍可正确处理。