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


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

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