MFC对话框关闭问题

时间:2012-01-30 11:38:57

标签: mfc modal-dialog

美好的一天! 我有一个带有进度的MFC对话框。 使用PostMessageW(WM_CLOSE)达到100%后,Dialog会自动关闭。 问题是,在进展过程中,当我在屏幕上移动对话框时,对话框没有关闭,WM_CLOSE消息被忽略。有什么建议?感谢。

2 个答案:

答案 0 :(得分:0)

对于模态对话框,您实际上不需要使用WM_CLOSE消息。

通常你会使用确定或取消按钮事件来关闭它,从功能代码调用EndDialog方法或者只在处理完成时返回(假设对话框运行后它立即运行)初始化)。您可以同时设置返回值,例如EndDialog(2);

无论哪种方式,一旦当前消息处理程序返回,对话框将关闭,因此在关闭时可能会出现延迟,但不应该太多。

答案 1 :(得分:0)

进度条后面的活动是否在一个单独的线程中完成?看起来情况就是这样,否则当您拖动对话框时,进度条会冻结,直到您释放对话框而不是恢复为止。这意味着您可能需要查看内部线程通信,以及如何将消息发布到对话框HWND。

当您拖动它时,它可能与冻结(无活动)状态的对话框有关,这似乎是正常的Windows行为。如果是这种情况,您可以使用signals / CEvent告诉对话框关闭。