1

我是 MFC 的新手,所以请多多包涵。我有一个在双屏显示器上全屏显示的对话框。此对话框在另一个非模态对话框中实例化(单击按钮时)。就像是:

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

OnInitDialog()of 中MyChildNonModalDlgShowWindow(SW_MAXIMIZE)被调用以使其成为无边框全屏对话框。现在,里面有一个按钮回调事件MyChildNonModalDlg

void MyChildNonModalDlg::onBnClickedBut2() {
    // Display images on the dialog one by one for a very long time 
}

onBnClickedBut2运行并且对话框不断更新时,如果我在对话框外(比如在另一个屏幕上)用鼠标单击,这意味着当对话框失去焦点时,它会冻结!

我知道这也许可以通过多线程来解决,其中内部的进程OnBnClickedBut2()必须在线程内运行,但是作为对线程知之甚少的人,有人可以为我指出正确的方向或提供可以做的代码示例这个?

4

1 回答 1

0

用于AfxBeginThread在内部创建新线程onBnClickedBut2。您不应该阻止 UI 事件处理程序。希望你现在明白了。

于 2012-09-04T05:46:28.817 回答