我是MFC的新手所以请耐心等待。我有一个双屏幕显示器全屏显示的对话框。此对话框在另一个非模态对话框中实例化(单击按钮时)。类似的东西:
void MyCParentDlg::OnBnClickedButton1()
{
dlg2 = new MyChildNonModalDlg();
dlg2->ShowWindow(SW_SHOW);
}
在OnInitDialog()
的{{1}}中,调用MyChildNonModalDlg
使其成为全屏对话框,无边框。现在,ShowWindow(SW_MAXIMIZE)
中有一个按钮回调事件:
MyChildNonModalDlg
当void MyChildNonModalDlg::onBnClickedBut2() {
// Display images on the dialog one by one for a very long time
}
正在运行并且对话框正在不断更新时,如果我在对话框外点击鼠标(比如在另一个屏幕上),则表示对话框失去焦点时,冻结!
我知道这可能是可以用多线程修复的,其中onBnClickedBut2
内的进程必须在一个线程内运行,但是作为一个对线程知之甚少的人,有人可以指向我方向或提供可以做到这一点的代码示例?
答案 0 :(得分:0)
使用AfxBeginThread
在onBnClickedBut2
内创建新主题。您不应该阻止UI事件处理程序。希望你现在得到它。