0

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

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

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

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

有任何想法吗?

4

2 回答 2

1

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

于 2012-06-06T19:18:01.733 回答
0

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

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

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

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

于 2012-06-06T22:33:38.187 回答