有啥方法可以拥有 ASYNC MessageBox 吗?

Posted

技术标签:

【中文标题】有啥方法可以拥有 ASYNC MessageBox 吗?【英文标题】:Is there any way to have ASYNC MessageBox?有什么方法可以拥有 ASYNC MessageBox 吗? 【发布时间】:2010-08-24 11:51:04 【问题描述】:

或者我必须使用线程吗? (C++)

【问题讨论】:

你的意思是非模态消息框吗? 【参考方案1】:

不,没有。或者,您可以创建一个“无模式对话框”。

【讨论】:

【参考方案2】:

消息框是模式对话框。整个想法是它们不是异步的。假设可以做到这一点(考虑到适当的修改量,确实如此),您是否想将用户与看起来熟悉但行为方式与他们期望不同的东西混淆? 问题是,你为什么要这样做?也许有更好的解决方案。

【讨论】:

进入资源管理器,然后按Delete 删除任何文件。您将看到一个消息框,该消息框始终位于顶部,必须进行处理。然而,Explorer 继续响应输入。您刚刚发现了一个非常自然、直观的“异步消息框”。既然您有理由提出这个问题,请尝试回答:有什么方法可以使 MessageBox 无模式(即异步)? 默认MessageBox 模式是MB_APPLMODAL,其中只有活动线程和可选的指定hWnd 被阻塞。其他线程/窗口继续正常运行,与资源管理器中相同。 @IanBoyd 我承认,这是有理由的。当我写这个答案时,我的智慧少了 9 年 :)

以上是关于有啥方法可以拥有 ASYNC MessageBox 吗?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在不使用 Nest.js 中的 async/await 的情况下从数据库中获取数据?

C++ MessageBox (Windows.h) - 它有啥作用以及如何使它不可见(或等效)?

delphi里application.MessageBox()与showmessage()有啥区别?

asp.net framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有啥区别? [关闭]

Angular 测试中的 fakeAsync 和 async 有啥区别?

Dart 中的 async 和 async* 有啥区别?