1. 程式人生 > >MFC對話方塊程式中的OnCreate和OnInitDialog函式

MFC對話方塊程式中的OnCreate和OnInitDialog函式

        最近做一個簡單的專案,需要使用到MFC。雖說這個東西已經很老舊了,但是為了專案使用,開始學它。需要將一個osg三維檔案顯示在控制元件中,這裡使用編輯框空間,除錯過程中遇到了CEdit* e = (CEdit*)GetDlgItem(IDC_EDIT1);其中e的值為NULL,也就是說沒有get到控制元件。

        遂去圖書館,翻書找到問題所在由於將GetDlgItem放在了OnCreate中,而OnCreate是在視窗被建立時響應傳送的訊息,此時對話方塊尚未建立完成,所以其中的控制元件還不存在,當然就錯了,它可以用來設定視窗的屬性。此時不應將取得控制元件等與控制元件相關的語句放在OnCreate中。而對話方塊的OnInitDialog成員函式是對話方塊在被建立啟用後呼叫。,此時各種控制元件已經被建立,因此與控制元件相關的操作應該放在這裡面。