我需要打开一个对话框,从同一个类实例化两次。当我尝试这样做时
CdelmeDlg dlg;
dlg.DoModal();
dlg.DoModal();
第二次调用仅打开对话框一瞬间,就立即关闭了。我猜测是消息队列中留下了未处理的消息,因此在两次调用之间添加了以下代码。
MSG msgCur;
while (::PeekMessage(&msgCur, NULL, NULL, NULL, PM_REMOVE))
;
这样做解决了问题,但感觉并不是正确的方法。有没有一种方式可以正确处理剩余的消息?