MFC对话框失去焦点时会冻结
我是MFC新手,请耐心等待。 我有一个在双屏幕显示器上全屏显示的对话框。 该对话框在另一个非模态对话框中实例化(当点击一个按钮时)。 就像是:
void MyCParentDlg::OnBnClickedButton1()
{
dlg2 = new MyChildNonModalDlg();
dlg2->ShowWindow(SW_SHOW);
}
在MyChildNonModalDlg
的OnInitDialog()
中,调用ShowWindow(SW_MAXIMIZE)
,使其成为无边框全屏幕对话框。 现在, MyChildNonModalDlg
有一个按钮回调事件:
void MyChildNonModalDlg::onBnClickedBut2() {
// Display images on the dialog one by one for a very long time
}
当onBnClickedBut2
正在运行并且对话框不断更新时,如果我在对话框外面用鼠标点击(例如在另一个屏幕上),这意味着当对话框失去焦点时 ,它会冻结!
我知道这可能可以通过多线程来解决, OnBnClickedBut2()
中的进程必须在线程内部运行,但作为对线程知之甚少的人,是否有人能指向正确的方向或提供代码示例那可以做到这一点?
使用AfxBeginThread
创建新的内螺纹onBnClickedBut2
。 你不应该阻止UI事件处理程序。 希望你现在明白了。