天天看點

MFC之初始化總結一

     由于對MFC的不熟悉,中間遇到了很多的問題,現總結一二

CDialog::OnInitDialog()

   在我們自己建立的主對話框的初始化函數内有這麼一句,這個函數主要用來對建立的對話框執行個體化,雖然是不用我們自己寫,但是若MFC使用不當,也會導緻這個函數遇到許多問題,比如:

     1.建立一個EDIT控件,并添加了一個控件變量,若後面在資料總管内删除了EDIT控件,但是沒有删除其相應的EDIT控件變量與消息映射,編譯過程中就會導緻錯誤,此時屏蔽CDialog::OnInitDialog()可以解決一時的問題,但這也是拆東牆補西牆的做法。。。後面會遇到更多的問題(=。=  滿眼都是淚啊,我的代碼就這樣被人修改,而自己當時又不知道有什麼後果,導緻了一堆錯誤,還以為網上的源碼都是騙人的),現總結幾個會導緻的錯誤:控件變量的使用有問題,經常無法通過編譯,而隻能采用

((CEdit*)GetItemDlg(IDC_EDIT_EXAMPLE))->ADDSTRING()類似的用法。

 其中此GetItemDlg是MFC類中的函數,非API,此處調用的是目前視窗下的ID名為IDC_EDIT_EXAMPLE的控件的相關操作。

      2.屏蔽CDialog::OnInitDialog(),CTabCTRL的控件切換,無論是swtich(CTab.GetCursel())或者if判斷的都無法通過編譯,即使采用((CTabCtrl*)GetItemDlg(IDC_CTAB))->GetCursel()也不行 - -!。

待續