先前講了如何創建模態對話框,現在說說如何創建非模態對話框。
這里,無論是哪種方法,都借助了單文檔程序,而且是通過菜單的方式來創建,于是消息的機制有點復雜,不過不影響學習。先來說說創建的過程吧。
MFC------對話框程序的創建:
先前一直 都是對話框程序,直接新建MFC程序,選擇對話框程序,然后后面的一直選擇OK就可以了,當然,如果不喜歡關于和3D的話可以去掉,我之前的程序都去掉了,這樣可以使得程序精簡,看起來比較輕松。
MFC-----單文檔程序的創建:
選擇的第一步就是單文檔,后面也是一直點OK,不過個性化的選擇還是看你個人。
講解如何創建非模態對話框:
主要就是用Create函數來創建的,菜單的創建還是和前面一樣,其實都和前面的模態對話框創建一樣,注意的就是,函數在View下面的,然后要創建一個新類,派生自CDialog,不過覺得沒有也一樣,只用到指針而已,而且沒有改寫。
代碼如下:
void CTest37View::OnDialog()


{
// TODO: Add your command handler code here
CDlg *pdlg = new CDlg;
pdlg->Create(IDD_DIALOG1,this); //創建一個非模態對話框
pdlg->ShowWindow(SW_SHOW);
}

其他的都一樣,最后上個截圖:
最后值得注意的幾點:
1.非模態對話框中,不可以用CDialog類中的函數OnOK(),因為該函數調用的是EndDialog,而EndDialog該函數主要用于模態對話框,關閉非模態對話框的話要用DestoryWindow函數來實現。
2.在OnDialog函數中,必須使用指針來完成,因為只要指針申請的內存控件在子函數完成后還存在。。。。
posted on 2010-02-08 17:00
deercoder 閱讀(1606)
評論(0) 編輯 收藏 引用