(第四版中文版)[六]無模式對話框

模式對話框用 DoModal() 調用,以資源ID作爲參數的構造函數;無模式對話框默認構造函數無參數,用 Create (),以資源ID爲參數。

C++編譯器能夠自動區分無模式構造函數 CXXXDialog ( CView * ) 和模式構造函數 CXXXDialog ( CWnd * ),如果用 CView類或其派生類作爲參數來調用構造函數,編譯器選擇調用無模式構造函數,用CWnd 類或其派生類爲參數,則自動產生對模式構造函數的調用。 

對於無模式對話框,一定不要調用 CDialog::OnOK() 或 CDialog::OnCancel() ,必須在派生類中重載這些虛函數,否則當使用 Esc 、回車、或者單擊某按鈕時,就會激發相應基類函數的調用,導致調用 Windows 的 EndDialog () ,而 EndDialog() 只適用於模式對話框。無模式對話框必須調用 DestroyWindow () ,如果需要,還必須調用 UpdateData () 來將數據從對話框控件中傳到類數據成員。

除了主框架窗口之外,對於幾乎所有的窗口類型,DestroyWindow () 都不會將 C++ 對象刪除掉。

對於用戶自定義消息,只能使用 wParam和lParam 來傳遞省數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章