一、模態(tài)對話框和非模態(tài)對話框
Windows對話框分為兩類:模態(tài)對話框和非模態(tài)對話框。
模態(tài)對話框是這樣的對話框,當它彈出后,本應(yīng)用程序其他窗口將不再接受用戶輸入,只有該對話框響應(yīng)用戶輸入,在對它進行相應(yīng)操作退出后,其他窗口才能繼續(xù)與用戶交互。
非模態(tài)對話框則是,它彈出后,本程序其他窗口仍能響應(yīng)用戶輸入。非模態(tài)對話框一般用來顯示提示信息等。
第十二節(jié)添加的就是模態(tài)對話框
(1)非模態(tài)對話框
1.非模態(tài)對話框的模板必須具有Visible風(fēng)格,否則對話框?qū)⒉豢梢姡?br>
2.非模態(tài)對話框?qū)ο笫怯胣ew操作符在堆中動態(tài)創(chuàng)建的,而不是以成員變量的形式嵌入到別的對象中或以局部變量的形式構(gòu)建在堆棧上。通常應(yīng)在對話框的擁有者窗口類內(nèi)聲明一個指向?qū)υ捒蝾惖闹羔槼蓡T變量,通過該指針可訪問對話框?qū)ο螅?br>
3.必須有一個標志表明非模態(tài)對話框是否是打開的。這樣做的原因是用戶有可能在打開一個模態(tài)對話框的情況下,又一次選擇打開命令。程序根據(jù)標志來決定是打開一個新的對話框,還是僅僅把原來打開的對話框激活。通??梢杂脫碛姓叽翱谥械闹赶?qū)υ捒驅(qū)ο蟮闹羔樧鳛檫@種標志,當對話框關(guān)閉時,給該指針賦NULL值,以表明對話框?qū)ο笠巡淮嬖诹恕?br>
4.必須調(diào)用CWnd::DestroyWindow來關(guān)閉非模態(tài)對話框。
(2)模態(tài)對話框
1.模態(tài)對話框在對話框創(chuàng)建后,掛起外部的消息,只是響應(yīng)對話框內(nèi)部的消息,而外部消息則全部"過濾"掉了,直到系統(tǒng)接收到WM_DESTROY或WM_CLOSE后,系統(tǒng)返回控制權(quán)給模態(tài)對話框創(chuàng)建前的線程,
二、創(chuàng)建對話框
(1)創(chuàng)建一非模態(tài)對話框
CMyDlg* pMainWnd = new CMyDlg;
pMainWnd->Create();
(2)創(chuàng)建一模態(tài)對話框
CMyDlg dlg;
dlg.Domdal();
三、頭文件.h和源文件.cpp
頭文件(.h):
寫類的聲明(包括類里面的成員和方法的聲明)、函數(shù)原型、#define常數(shù)等,但一般來說不寫出具體的實現(xiàn)。源文件(.cpp):
源文件主要寫實現(xiàn)頭文件中已經(jīng)聲明的那些函數(shù)的具體代碼。需要注意的是,開頭必須#include一下實現(xiàn)的頭文件,以及要用到的頭文件。那么當你需要用到自己寫的頭文件中的類時,只需要#include進來就行了。
四、控件與類
控件是類的一個子集,類可以做控件所做的任何事,而控件卻無法完成類所有的功能。
五、開發(fā)軟件一定要先進行功能設(shè)計,最好先進行原型設(shè)計