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

C++ 如何初始化模态对话框?(C+;+;/MFC),c++,mfc,modal-dialog,C++,Mfc,Modal Dialog,我想在显示对话框时填充它的一些字段。因此,我愿遵循这些步骤: 构造对话框对象 调用DoModal() 初始化其字段 但是,只有当对话框关闭时,我才能传递到DoModal()后面的指令。因此,如何初始化对话框的字段 我试图覆盖DoModal(): 但问题是相同的:当对话框关闭时调用InitDialog()。创建对话框对象,然后在对话框上添加OnInitDialog,此方法将在显示对话框()之前调用。 将变量添加到对话框(int a;) 呼叫dailog: CDialog dlg; dlg.a =

我想在显示对话框时填充它的一些字段。因此,我愿遵循这些步骤:

  • 构造对话框对象
  • 调用DoModal()
  • 初始化其字段
  • 但是,只有当对话框关闭时,我才能传递到DoModal()后面的指令。因此,如何初始化对话框的字段

    我试图覆盖DoModal():


    但问题是相同的:当对话框关闭时调用InitDialog()。

    创建对话框对象,然后在对话框上添加
    OnInitDialog
    ,此方法将在显示对话框()之前调用。 将变量添加到对话框(int a;)

    呼叫dailog:

    CDialog dlg;
    dlg.a = 10;
    dlg.DoModal();
    

    创建对话框对象,然后在对话框上添加
    OnInitDialog
    ,此方法将在显示对话框()之前调用。 将变量添加到对话框(int a;)

    呼叫dailog:

    CDialog dlg;
    dlg.a = 10;
    dlg.DoModal();
    

    直到对话框关闭,DoModal才会返回。实例化MyDialog,初始化成员,然后调用DoModal(),直到对话框关闭,DoModal才会返回。实例化MyDialog,初始化成员,然后调用DoModal()谢谢!这就是解决方案:)初始化应该由构造函数完成,而不是将成员变量设置为公共(=糟糕的设计)。默认情况下,只有默认构造函数,您需要重写或添加公共方法,这些方法将值作为参数传入,然后分配给您的变量。谢谢!这就是解决方案:)初始化应该由构造函数完成,而不是将成员变量设置为公共(=糟糕的设计)。默认情况下,只有默认构造函数,您需要重写或添加公共方法,这些方法将值作为参数传入,然后分配给您的变量。