MFC对话框失去焦点时会冻结

我是MFC新手,请耐心等待。 我有一个在双屏幕显示器上全屏显示的对话框。 该对话框在另一个非模态对话框中实例化(当点击一个按钮时)。 就像是:

void MyCParentDlg::OnBnClickedButton1()
{
        dlg2 = new MyChildNonModalDlg();
        dlg2->ShowWindow(SW_SHOW);
}

MyChildNonModalDlgOnInitDialog()中,调用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事件处理程序。 希望你现在明白了。

链接地址: http://www.djcxy.com/p/6681.html

上一篇: MFC dialog freezes when it looses focus

下一篇: Ajax Not returning Data to Action ASP.net MVC