MFC中,使用AfxMessageBox弹出的消息,被模态的等待提示框suo遮挡

之前做了一个模态的等待提示框,yi防止用户误认为软件卡死,但之后就遇到了一个问题,当其他线程监测到错误并使用afxmessagebox函数提示用户进行处理时,弹出的消息框被等待框所遮盖。

有查到使用MB_SYSTEMMODAL来使消息框置顶,但是软件代码量很大,如果用这种方式要修改的地方很多、很繁琐,有办法设置等待提示框在消息框下方吗?

PS:等待提示框的实现是另开一个线程,在线程中DoModal,通过提示框类的定时器检测结束标志来关闭

Raymond Chen的Modality博客系列里面有提到这样的问题。里面有两篇文章也提到了定时的消息框怎么实现的。 建议还是把整个系列从头到尾看一遍以避免类似的问题。
https://devblogs.microsoft.com/oldnewthing/tag/modality

用宏定义,把mfc的AfxMessageBox用你自己的函数替换掉,这是最简单的办法。

HWND hwnd = ::FindWindow(_T("消息框的类"), NULL);
if(hwnd)
{
隐藏或者关掉等待提示框
}