第02章對話框應用程序_第1頁
第02章對話框應用程序_第2頁
第02章對話框應用程序_第3頁
第02章對話框應用程序_第4頁
第02章對話框應用程序_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-1 Hello World 應用程序項目設(shè)置第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-3 Hello World應用程序向?qū)贸绦蛟O(shè)置第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-4 Hello World程序運行結(jié)果第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章

2、章 對話框應用程序?qū)υ捒驊贸绦?圖2-5 VS2010中MFC應用程序的類型第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-6 S2_1新建項目對話框第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-7 S2_1應用程序向?qū)υ捒驓g迎使用向?qū)У诘?2章章 對話框應用程序?qū)υ捒驊贸绦?圖2-8 應用程序向?qū)υ捒驊贸绦蝾愋偷诘?2章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-10 控件屬性設(shè)置窗口圖2-9 控件箱各控件含義第第02章章 對話框應用程序?qū)υ捒驊贸?/p>

3、序 第第02章章 對話框應用程序?qū)υ捒驊贸绦?接著,請將對話框模板上的所有控件刪除,刪除接著,請將對話框模板上的所有控件刪除,刪除的辦法是選擇控件后按的辦法是選擇控件后按Del鍵。鍵。提示:對話框的尺寸單位不是象素,而是與字體提示:對話框的尺寸單位不是象素,而是與字體的大小有關(guān)。的大小有關(guān)。X方向上一個單位等于字符平均寬度的方向上一個單位等于字符平均寬度的1/4,Y方向上一個單位等于字符平均高度的方向上一個單位等于字符平均高度的1/8。這樣,隨著字體的改變,對話框單位也會改變,對話這樣,隨著字體的改變,對話框單位也會改變,對話框本身的總體比例保持不變??虮旧淼目傮w比例保持不變。最后,需要測試

4、一下對話框。按最后,需要測試一下對話框。按Ctrl+T,則會彈,則會彈出一個當前模板的測試對話框,這個對話框的外觀和出一個當前模板的測試對話框,這個對話框的外觀和基本行為與程序中將要彈出的對話框一樣。這樣,讀基本行為與程序中將要彈出的對話框一樣。這樣,讀者不用編譯運行程序,通過測試對話框就可以評估對者不用編譯運行程序,通過測試對話框就可以評估對話框是否合適。如果發(fā)現(xiàn)錯誤或者存在不滿意的地方,話框是否合適。如果發(fā)現(xiàn)錯誤或者存在不滿意的地方,可按可按ESC鍵退出測試對話框并重新修改對話框模板。鍵退出測試對話框并重新修改對話框模板。第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-11 加法器第第0

5、2章章 對話框應用程序?qū)υ捒驊贸绦?表2-1 加法器各控件及其屬性設(shè)置第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-12 為第一個操作數(shù)控件添加成員變量第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-13 在“類向?qū)А敝刑砑尤齻€成員變量第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-14 添加消息響應函數(shù)對話框第第02章章 對話框應用程序?qū)υ捒驊贸绦?以下為以下為OnAdd成員函數(shù)的具體代碼:成員函數(shù)的具體代

6、碼:/ OnAdd成員函數(shù)成員函數(shù)void CS2_1Dlg: OnClickedAdd() / TODO: Add your control notification handler code hereUpdateData(true); / Edit Box中的值中的值更新到變量中更新到變量中m_fResult=m_fOperator1+m_fOperator2; / 作作加法運算加法運算UpdateData(false); / 變量的值更新到變量的值更新到Edit Box顯示顯示第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用

7、程序?qū)υ捒驊贸绦?圖2-15 S2_1加法器運行結(jié)果第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?為了防止誤操作,可以根據(jù)需要設(shè)置默認按鈕圖2-16 消息對話框其中圖標風格為警告圖標,按鈕為其中圖標風格為警告圖標,按鈕為“是是(Y)”和和“否否(N)”按按鈕,默認按鈕為第一個,各種風格的圖標和按鈕,以及其鈕,默認按鈕為第一個,各種風格的圖標和按鈕,以及其他常用風格的設(shè)置見下表他常用風格的設(shè)置見下表2-3、表、表2-4和表

8、和表2-5。第第02章章 對話框應用程序?qū)υ捒驊贸绦?表2-3 消息對話框圖標風格第第02章章 對話框應用程序?qū)υ捒驊贸绦?表2-4 消息對話框按鈕風格第第02章章 對話框應用程序?qū)υ捒驊贸绦?表2-5 消息對話框中其他常用風格的設(shè)置第第02章章 對話框應用程序?qū)υ捒驊贸绦?如果不對默認按鈕進行設(shè)置,則默認按鈕為第如果不對默認按鈕進行設(shè)置,則默認按鈕為第1個按鈕。個按鈕。下表列舉了消息對話框的返回值及其含義。下表列舉了消息對話框的返回值及其含義。表2-6 消息對話框返回值及其含義第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框

9、應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?2.4.3 非模態(tài)對話框非模態(tài)對話框與模態(tài)對話框不同,非模態(tài)對話框不壟斷用戶與模態(tài)對話框不同,非模態(tài)對話框不壟斷用戶輸入,用戶打開非模態(tài)對話框后,仍然可以與其它界輸入,用戶打開非模態(tài)對話框后,仍然可以與其它界面進行交互。非模態(tài)對話框的設(shè)計與模態(tài)對話框基本面進行交互。非模態(tài)對話框的設(shè)計與模態(tài)對話框基本類似,也包括設(shè)計對話框模板和設(shè)計類似,也包括設(shè)計對話框模板和設(shè)計CDialog類的派類的派生類兩部分。但是,在對話框的創(chuàng)建和刪除過程中,生類兩部分。但是,在對話框的創(chuàng)建和刪除過程中,非模態(tài)對話框與模態(tài)對話框相比,有以下不同之處:非模

10、態(tài)對話框與模態(tài)對話框相比,有以下不同之處:非模態(tài)對話框的模板必須具有非模態(tài)對話框的模板必須具有Visible風格,否則風格,否則對話框?qū)⒉豢梢?,而模態(tài)對話框則無需設(shè)置該項風格。對話框?qū)⒉豢梢姡B(tài)對話框則無需設(shè)置該項風格。保險的辦法是調(diào)用保險的辦法是調(diào)用CWnd:ShowWindow(SW_SHOW)來顯示對話框,來顯示對話框,而不管對話框是否具有而不管對話框是否具有Visible風格。風格。第第02章章 對話框應用程序?qū)υ捒驊贸绦?非模態(tài)對話框?qū)ο笫怯梅悄B(tài)對話框?qū)ο笫怯胣ew操作符在堆中動態(tài)創(chuàng)建操作符在堆中動態(tài)創(chuàng)建的,而不是以成員變量的形式嵌入到別的對象中或以局部變的,而不是以成員變量

11、的形式嵌入到別的對象中或以局部變量的形式構(gòu)建在堆棧上。通常應在對話框的擁有者窗口類內(nèi)量的形式構(gòu)建在堆棧上。通常應在對話框的擁有者窗口類內(nèi)聲明一個指針成員變量指向?qū)υ捒驅(qū)ο?,通過該指針就可以聲明一個指針成員變量指向?qū)υ捒驅(qū)ο螅ㄟ^該指針就可以訪問對話框?qū)ο?。訪問對話框?qū)ο蟆?通過調(diào)用通過調(diào)用CDialog:Create函數(shù)啟動對話框,而不函數(shù)啟動對話框,而不是是CDialog:DoModal,這是非模態(tài)對話框的關(guān)鍵所在。由,這是非模態(tài)對話框的關(guān)鍵所在。由于于Create函數(shù)不會啟動新的消息循環(huán),對話框與應用程序函數(shù)不會啟動新的消息循環(huán),對話框與應用程序共用同一個消息循環(huán),這樣對話框就不會壟斷用戶

12、輸入。共用同一個消息循環(huán),這樣對話框就不會壟斷用戶輸入。Create在顯示了對話框后就立即返回,而在顯示了對話框后就立即返回,而DoModal是在對是在對話框被關(guān)閉后才返回的。在話框被關(guān)閉后才返回的。在MFC程序中,窗口對象的生存程序中,窗口對象的生存期應長于對應的窗口,也就是說,不能在沒有關(guān)閉屏幕上窗期應長于對應的窗口,也就是說,不能在沒有關(guān)閉屏幕上窗口的情況下,先把該窗口對象刪除掉??诘那闆r下,先把該窗口對象刪除掉。第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?

13、表2-7 通用對話框類型第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-17 顏色對話框第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖2-18 文件選擇對話框第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?char szFilter=“All files (*.*)|*.*|Text files(*.txt)|*.txt|Word documents(*.doc)|*.doc|”

14、;若若CFileDialog:DoModal返回的是返回的是IDOK,那么可以用,那么可以用下表下表2-8列出的列出的CFileDialog類的成員函數(shù)來獲取與所選文件類的成員函數(shù)來獲取與所選文件有關(guān)的信息。有關(guān)的信息。表2-8 CFileDialog類的成員函數(shù)第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?編譯并運行編譯并運行S2_2,讀者會發(fā)現(xiàn),讀者會發(fā)現(xiàn)S2_2居然是個編輯器,它居然是個編輯器,它可以打開、編輯和保存文本文件,程序運行結(jié)果如圖可以打開、編輯和保存文本文件,程序運行結(jié)果如圖2-21所示所示。圖2-21 S2_2單文檔應用程序運行結(jié)果具有編輯功能第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框應用程序?qū)υ捒驊贸绦?圖圖2-23 修改加法器資源修改加法器資源ID第第02章章 對話框應用程序?qū)υ捒驊贸绦?第第02章章 對話框

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論