我如何做很酷的对话 (MFC)

Posted

技术标签:

【中文标题】我如何做很酷的对话 (MFC)【英文标题】:How Do I Do Cool Dialog Stuff (MFC) 【发布时间】:2012-06-06 17:08:24 【问题描述】:

我是否必须使用对话框或消息并不重要,但我需要以某种方式执行以下操作:

我有一个基于对话框的 MFC 应用程序。主对话框调用一个创建线程的过程。对过程的调用在 while 循环内。 (基本上它是一个文件处理程序 - 产生一个用于保存文件的线程。因此,为每个正在保存的文件产生一个线程。)

我正在正确地暂停和恢复主线程。但是,我不知道如何让消息框/对话框显示“请稍候”之类的内容,并且仍然有主对话框更新... 0.o

基本上,我想锁定主对话框与用户交互(例如阻止他们选择任何内容或单击任何按钮),但我希望对话框上的进度条更新...

有什么想法吗?

【问题讨论】:

有点旧但可以工作:microsoft.com/msj/0297/wicked/wicked0297.aspx 这正是我想要的!谢谢你!你介意做一个答案,这样我就可以给你功劳了吗?谢谢! 【参考方案1】:

有点旧,但可以工作: microsoft.com/msj/0297/wicked/wicked0297.aspx

【讨论】:

【参考方案2】:

嗯,这是一个非常古老的应用程序。

您无需遵循此示例;但是你可以按照这个想法。

您有两个选择: 在主对话框中创建进度条,禁用除进度之外的所有对话框。启动线程传递对话框的句柄。从线程使用此句柄发送自定义消息以允许对话推进。 另一条消息将通知对话框线程已完成并启用所有控件。

另一种选择是生成无模式对话框,启动线程传递无模式对话框的句柄和进程,如上所述。 将主对话框指针传递给无模式对话框,用于在无模式启动 (OnInitDialog) 时禁用和启用主对话框,并在收到线程完成消息时启用,然后销毁无模式对话框窗口。

【讨论】:

以上是关于我如何做很酷的对话 (MFC)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MFC 应用程序中隐藏模式对话框?

如何继承 MFC 对话框?

如何初始化模态对话框? (C++/MFC)

MFC如何隐藏对话框?

在mfc对话框工程中,如何使用CDockablePane。另外,在单文档工程中,能否做出一个视频播放器

如何在基于 MFC 对话框的应用程序中设置主对话框的大小