gpt4 book ai didi

c++ - MFC 对话框在失去焦点时卡住

转载 作者:太空宇宙 更新时间:2023-11-04 14:17:18 25 4
gpt4 key购买 nike

我是 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() 中的进程必须在线程中运行,但是作为对线程知之甚少的人,有人可以给我指出正确的方向或提供可以做到这一点的代码示例?

最佳答案

使用 AfxBeginThreadonBnClickedBut2 中创建新线程。您不应该阻止 UI 事件处理程序。希望你现在明白了。

关于c++ - MFC 对话框在失去焦点时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10190998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com