-1

我的CMyView课上有一些代码。在那里我打开一个对话框DoModal()

AnotherDialog dlg;
dlg.DoModal();  

现在我想自动运行一个函数。问题是,每当我调用dlg.DoModal()时,编译器都会等到我再次关闭 Dialog 窗口,才能继续将我的代码运行到CMyView类中。该函数也可以自动调用到我的AnotherDialog类中。谁能告诉我,当我打开另一个对话框时,如何自动运行一个函数?

4

2 回答 2

3

AnotherDialog有一个构造函数,AnotherDialog::AnotherDialog(). 每次创建对话框时都会调用从那里调用的任何函数,而无需提供参数。如果您添加构造函数重载,则每个构造函数都可以有不同的行为,这取决于您如何使您的代码不混乱。(即保持一致)

如果AnotherDialog不是您的课程,您可能希望从中派生:class MyOtherDialog : public AnotherDialog. 您现在可以拥有一个MyOtherDialog::MyOtherDialog在 之后调用的构造函数AnotherDialog::AnotherDialog()

DoModal()您还可以在现有类或派生类中再次向 , 添加代码。

于 2013-11-12T12:15:57.767 回答
0

视图类中的代码正在等待,因为您正在使用 DoModal () 方法。根据定义,DoModal 是同步的,因此它将等待对话框关闭后再继续。在不太了解您的设计的情况下,我猜您应该改用“无模式”对话框调用。

于 2013-11-12T13:31:04.617 回答