我的CFormView派生类的结构如下:
class FormViewClass : public CFormView
{
...
FormViewClass();
void Initialize();
virtual void OnInitialUpdate();
...
};
理想情况下,我想在构造函数的主体中调用Initialize()函数,如下所示:
FormViewClass::FormViewClass()
{
...
// originally I want to call Initialize function here
Initialize();
...
}
但是,由于我希望此函数在创建时负责此类的所有初始化,并且它包含MFC对象初始化,例如组合框,编辑控件,复选框控件,单选按钮控件等,我应该是而是像我想的那样在这里调用Initialize()函数:
void FormViewClass::OnInitialUpdate()
{
// Should I call Initialize function instead here?
Initialize();
}
目前我在构造函数中有非MFC内存和对象初始化(因此在构造函数中调用Iniitalize()辅助函数)和OnIniitalUpdate()处理函数中的MFC对象iniitalization。听听你对它的想法会很好,这样我就可以正确地重构代码。提前谢谢。
答案 0 :(得分:6)
我认为你按照自己的方式去做是对的。
一般情况下,我会尝试尽早初始化事物(但不是早期的8-),因此在构造函数中执行非GUI内容,而OnInitialUpdate
中的GUI内容是有意义的。
(如果OnInitDialog
存在CFormView
,那可能比OnInitialUpdate
更好,但I don't think it does。)