MFC:CFormView派生类的OnInitialUpdate函数

sta*_*tor 3 c++ refactoring mfc initialization

我的CFormView派生类的结构如下:

class FormViewClass : public CFormView
{
        ...
        FormViewClass();
        void Initialize();
        virtual void OnInitialUpdate();
        ...
};
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想在构造函数的主体中调用Initialize()函数,如下所示:

FormViewClass::FormViewClass()
{
        ...
        // originally I want to call Initialize function here
        Initialize();
        ...
}
Run Code Online (Sandbox Code Playgroud)

但是,由于我希望此函数在创建时负责此类的所有初始化,并且它包含MFC对象初始化,例如组合框,编辑控件,复选框控件,单选按钮控件等,我是否应该调用像我想的那样在这里初始化()函数:

void FormViewClass::OnInitialUpdate()
{
    // Should I call Initialize function instead here?
    Initialize();
}
Run Code Online (Sandbox Code Playgroud)

目前我在构造函数中有非MFC内存和对象初始化(因此在构造函数中调用Iniitalize()辅助函数)和OnIniitalUpdate()处理函数中的MFC对象iniitalization.听听你对它的想法会很好,这样我就可以正确地重构代码.提前致谢.

Ric*_*dle 6

我认为你按照自己的方式去做是对的.

一般来说,我会尝试尽早初始化事物(但不是早期的8-),所以在构造函数中做非GUI的东西,并且GUI内容OnInitialUpdate是有意义的.

(如果OnInitDialog存在CFormView,那可能会比一个更好的地方OnInitialUpdate,但我不认为它.)