【发布时间】:2019-12-17 01:22:42
【问题描述】:
我有一个名为 A 的派生类继承自 CDialog,我为 A 创建了一个名为 a 的对象,并希望利用成员函数 domodal 来显示对话框。尽管如此,此对话框无法显示,并且父窗口被阻止。
A a(this);
auto DlgResult = std::async(std::launch::async, &A::DoModal,&a);
DlgResult.wait();
if (DlgResult.get() == IDOK)
{
std::wstring ss = a.get_text_fromdlg();
}
谁能帮帮我,谢谢!
【问题讨论】:
-
将所有 GUI 活动保存在一个线程中。
-
@seccpur 谢谢你的重播,我会记住的。我只是试图让它异步。
-
您想要专门的
std::async,还是仅仅想要一个非阻塞对话框? MFC 早于std::async,并且有其他工具可以防止 CDialog 阻塞 UI 线程。这个 SO 问题有一些例子:stackoverflow.com/questions/2271821/… -
@parktomatomi 目前,如果我使用 std::async,对话框无法显示,我想使用 std::async 显示对话框......
-
对于非阻塞对话框,使用无模式对话框。