MFC 对话框在失去焦点时冻结
MFC dialog freezes when it looses focus
我是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 事件处理程序。希望你现在明白了。
相关文章:
- WIN32:C++,为什么在WM_CLOSE上调用Messagebox函数程序正在冻结
- Win32 发送输入鼠标移动滞后并冻结
- ImGui 在单击按钮后冻结
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- MFC:如何设置CEdit框的焦点?
- QWidget UI 在使用 QQuickWidget 时冻结
- 如何防止 std::thread 在 QT 中冻结 GUI?
- Adafruit 羽毛RFM69HCW在使用过程中会冻结,需要硬重置
- MFC/C++ ComboBox:禁用下拉列表关闭和打开(UI 冻结)的绘制
- 模板总和函数冻结字符
- 程序在对mouse_event的 Windows API 调用中冻结
- 在 ubuntu 焦点上编译虚幻引擎 4.25 时出错
- MSYS2 上的 CMake 冻结
- Qt,操作缓慢时不要冻结GUI输入元素
- 延迟函数使打开的框架窗口冻结,直到指定的时间过去
- 如何在 wxWidgets 中从 wxTextCtrl 中删除焦点
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 每次qt窗口获得焦点时调用函数
- Qt如何在QRect上设置焦点
- MFC 对话框在失去焦点时冻结