美好的一天! 我有一个带有进度的MFC对话框。 使用PostMessageW(WM_CLOSE)达到100%后,Dialog会自动关闭。 问题是,在进展过程中,当我在屏幕上移动对话框时,对话框没有关闭,WM_CLOSE消息被忽略。有什么建议?感谢。
答案 0 :(得分:0)
对于模态对话框,您实际上不需要使用WM_CLOSE
消息。
通常你会使用确定或取消按钮事件来关闭它,从功能代码调用EndDialog
方法或者只在处理完成时返回(假设对话框运行后它立即运行)初始化)。您可以同时设置返回值,例如EndDialog(2);
。
无论哪种方式,一旦当前消息处理程序返回,对话框将关闭,因此在关闭时可能会出现延迟,但不应该太多。
答案 1 :(得分:0)
进度条后面的活动是否在一个单独的线程中完成?看起来情况就是这样,否则当您拖动对话框时,进度条会冻结,直到您释放对话框而不是恢复为止。这意味着您可能需要查看内部线程通信,以及如何将消息发布到对话框HWND。
当您拖动它时,它可能与冻结(无活动)状态的对话框有关,这似乎是正常的Windows行为。如果是这种情况,您可以使用signals / CEvent告诉对话框关闭。