如何调用多个对话框并将它们与用户线程相关联?

Posted

技术标签:

【中文标题】如何调用多个对话框并将它们与用户线程相关联?【英文标题】:How to invoke mulitple dialogs and associate them wth a user thread? 【发布时间】:2014-02-25 11:35:40 【问题描述】:

我正在开发一个允许同时打开多个模态对话框的应用程序。我一直遇到一个问题,即每当我关闭第一个对话框时,它都会正确关闭并且调用不会返回给被调用者,直到我关闭第二个对话框,这违背了我必须达到的目的。

示例代码:

Class A

    func1()
    
        ....
        DOModal()
        ....//some processing
    

Class B

    func2()
    
        ...
        doModal()
    

我尝试通过将用户线程和事件机制与对话框相关联来创建用户线程和事件机制,但实际情况是它实际上在我响应之前不允许我打开另一个对话框。我仍然希望按原样执行。

我的应用程序是单线程环境。

【问题讨论】:

A.func1()B.func2() 的调用是如何相互关联的?是先调用func1() 吗? func2() 是否在 func1() 仍在运行时被调用?请提供更完整的SSCCE。 【参考方案1】:

DoModal 对话框将允许您为每个线程一次只启动一个。相反,您可以尝试createshow 对话框,其中参数 nIDTemplate 作为对话框的 ID,pParentWnd 作为父窗口。在这里您将不需要创建多个线程。

【讨论】:

要求说有一个模态对话框而不是模态对话框。

以上是关于如何调用多个对话框并将它们与用户线程相关联?的主要内容,如果未能解决你的问题,请参考以下文章

linux内核——进程,轻量级进程,线程,线程组

如何将我的用户的支出与他们在 Firebase 中的个人资料相关联?

如何使用 IOCP 将用户定义的数据传递给工作线程?

12.3 线程属性

MFC中多线程中静态函数调用成员函数的问题

如何将我的域名与我的 AWS 应用程序相关联?