2009-06-22 55 views
3

我CFormView派生類的結構爲的函數OnInitialUpdate如下:MFC:一個CFormView派生類

class FormViewClass : public CFormView 
{ 
     ... 
     FormViewClass(); 
     void Initialize(); 
     virtual void OnInitialUpdate(); 
     ... 
}; 

理想情況下,我想調用初始化()函數的構造函數體如下:

FormViewClass::FormViewClass() 
{ 
     ... 
     // originally I want to call Initialize function here 
     Initialize(); 
     ... 
} 

然而,因爲我想在創建時此功能是負責這一類的所有初始化,它包含MFC對象初始化,如組合框,編輯控件,CheckBox控件,單選按鈕控制等。,我應該改爲調用Initial這裏IZE()函數,我想:

void FormViewClass::OnInitialUpdate() 
{ 
    // Should I call Initialize function instead here? 
    Initialize(); 
} 

目前我有在構造函數(因此調用構造函數Iniitalize()輔助功能)和MFC對象iniitalization在OnIniitalUpdate非MFC內存和對象初始化()處理函數。聽到你的想法真是太好了,以便我可以正確地重構代碼。提前致謝。

回答

6

我認爲你是對的,就像你這樣做。通常,我會嘗試儘早初始化事物(但不要早於8-),因此在構造函數中執行非GUI東西,並且OnInitialUpdate中的GUI東西是有意義的。

(如果存在了CFormViewOnInitDialog,這可能會是一個更好的地方比OnInitialUpdate,但I don't think it does。)

+1

不,它不需要。 AFAIK,OnInitialUpdate相當於CFormView類的OnInitDialog。謝謝你的想法。 – stanigator 2009-06-22 22:32:13