我的CMyView
课上有一些代码。在那里我打开一个对话框DoModal()
:
AnotherDialog dlg;
dlg.DoModal();
现在我想自动运行一个函数。问题是,每当我调用dlg.DoModal()
时,编译器都会等到我再次关闭 Dialog 窗口,才能继续将我的代码运行到CMyView
类中。该函数也可以自动调用到我的AnotherDialog
类中。谁能告诉我,当我打开另一个对话框时,如何自动运行一个函数?
AnotherDialog
有一个构造函数,AnotherDialog::AnotherDialog()
. 每次创建对话框时都会调用从那里调用的任何函数,而无需提供参数。如果您添加构造函数重载,则每个构造函数都可以有不同的行为,这取决于您如何使您的代码不混乱。(即保持一致)
如果AnotherDialog
不是您的课程,您可能希望从中派生:class MyOtherDialog : public AnotherDialog
. 您现在可以拥有一个MyOtherDialog::MyOtherDialog
在 之后调用的构造函数AnotherDialog::AnotherDialog()
。
DoModal()
您还可以在现有类或派生类中再次向 , 添加代码。
视图类中的代码正在等待,因为您正在使用 DoModal () 方法。根据定义,DoModal 是同步的,因此它将等待对话框关闭后再继续。在不太了解您的设计的情况下,我猜您应该改用“无模式”对话框调用。