版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第8章 對話框初步和公用對話框的使用,8.1對話框初步,對話框是對話框模板與對話框類(CDialog類)的連接 對話框模板(資源)的設計 1)選擇菜單命令“插入”→“資源”,在打開的對話框中選擇“Dialog”,單擊“新建”按鈕,打開對話框資源編輯器。 2)把控件欄中的相關控件拖放到對話框模板中,就完成了對話框模板的設計。,對話框模板的設計,注:對話框模板帶有兩個缺省按鈕控件,一個是“OK”(確定),一個是“Cancel”
2、(取消),其ID分別為IDOK和IDCANCEL。,對話框模板與對話框類的連接 在頭文件中從CDialog類派生自己的對話框類CMyDialog,并在構造器中與對話框模板連接:class CMyDialog:public CDialog{public:enum{IDD=IDD_DIALOG1};//通過枚舉,把所有的對話框ID命名為IDDCMyDialog(CWnd*p=NULL):CDialog(C
3、MyDialog::IDD,p){}//構造器函數(shù)};,對話框的顯示 CMyDialog mydialog; mydialog.DoModal();//用DoModal()函數(shù)顯示對話框 。注:DoModal()函數(shù)負責對話框的顯示,這個函數(shù)有兩種可能的返回值,如果單擊對話框上的“確定”按鈕關閉對話框,DoModal()函數(shù)的返回值是IDOK;如果單擊“取消”按鈕關閉對話框,DoModal()函數(shù)的返回值是IDCANC
4、EL。,對話框的消息循環(huán)和按鈕控件的消息1)對話框類是從CWnd類派生的,因此具有消息循環(huán)和消息處理能力,它處理控件發(fā)給它的消息。2)單擊/雙擊按鈕控件發(fā)出WM_COMMAND消息,其消息映射是: ON_BN_CLICKED(按鈕控件的ID號,處理函數(shù)Function) ON_BN_DOUBLECLICKED(按鈕控件的ID號,處理函數(shù)Function),對按鈕控件消息映射的分析:,3)CDialog基類已經為“確定”和
5、“取消”按鈕的單擊行為編寫了處理函數(shù),其中“確定”按鈕的處理函數(shù)是OnOK(),“取消”按鈕的處理函數(shù)是OnCancel(),在應用程序中這兩條消息連消息映射都不用寫。可以嘗試把“確定”按鈕單擊的消息映射補上,如下處理:(1)加入消息映射BEGIN_MESSAGE_MAP(CMyDialog,CDialog)ON_BN_CLICKED(IDOK,OnOK)END_MESSAGE_MAP()(2)聲明CMyDialog類具有消
6、息處理能力,在CMyDialog類定義的末尾加上宏DECLARE_MESSAGE_MAP(),8.2 色彩對話框,Windows的公用對話框,色彩對話框的使用1)色彩對話框的顯示CColorDialog colordialog; //生成色彩對話框對象colordialog.DoModal(); //顯示色彩對話框,2)獲取選擇的顏色 當在色彩對話框上選定顏色,并單擊“確定”按鈕關閉對話框后,所選定
7、的顏色將保存在CColorDialog類的數(shù)據(jù)成員m_cc中。m_cc是一個結構體數(shù)據(jù)類型(CHOOSECOLOR)的變量,其數(shù)據(jù)成員COLORREF rgbResult保存在色彩對話框中選定的顏色。 一般利用CColorDialog的成員函數(shù)來獲取保存的顏色,這一函數(shù)是:COLORREF GetColor()。,8.3 字體對話框,字體對話框(CFontDialog)可以選擇字體的大小、顏色等。和色彩對話框類
8、似,字體對話框選擇的結果保存在一個CHOOSEFONT結構體類型的變量m_cf 中,可以通過CFontDialog類的成員函數(shù)得到選擇的結果。,1)函數(shù)GetCurrentFont(LPLOGFONT lplf),參數(shù)lplf是指向邏輯字體結構體LOGFONT的指針。 一般的用法是,先定義一個LOGFONT fnt結構體變量,采用GetCurrentFont(&fnt)的方式為fnt賦值,這樣在字體對話
9、框中選擇的字體大小、字形等信息便存放到fnt中。2)函數(shù)COLORREF GetColor(),用法和CColorDialog中的GetColor()函數(shù)相同,用這一函數(shù)可以獲取在字體對話框中選擇的字體顏色信息。,8.4 文件對話框和CFile類,文件對話框(CFileDialog)只實現(xiàn)文件打開和保存的界面,要真正進行文件讀寫還需要CFile類的支持。文件對話框通過構造器參數(shù)(TRUE/FALSE)來確定是文件打開對話框/文件保存
10、對話框。,CFileDialog構造器分析: 1)CFileDialog類的構造器原型是:CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,DWORD dwFlags=OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter=NULL, CWnd*pP
11、arentWnd=NULL)。2)BOOL bOpenFileDialog,當賦值為TRUE時,構造的是文件打開對話框,當賦值為FALSE時,構造的是文件保存對話框。 3)LPCTSTR lpszFilter,它說明文件的擴展名,充當文件的過濾器。當打開文件時,列表框中只顯示被過濾器過濾過的文件,如下定義了一個文件過濾器。,CFileDialog的文件保存/打開界面作用 用戶所做的文件選擇會保存在CFileDi
12、alog的數(shù)據(jù)成員m_ofn中,m_ofn是OPENFILENAME結構體類型的變量。 用文件對話框類中的成員函數(shù)獲取選擇結果,如獲取全路徑函數(shù)CString GetPathName()。 可以這樣獲取文件的路徑:CString str=文件對話框類對象.GetPathName()。 獲取了文件完整路徑后,就可以用CFile類文件進行讀寫操作 。,CFile類實現(xiàn)
13、文件的讀寫操作1)文件的打開和關閉:CFile類用Open()函數(shù)打開要操作的文件,用Close()函數(shù)關閉要操作的文件。 BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException*pError=NULL)。 函數(shù)中第一個參數(shù)lpszFileName是要打開的文件名;nOpenFlags是打開文件的訪問方式,常見的有:CFile::modeCre
14、ate(創(chuàng)建一個新文件) CFile::modeRead(打開文件,只讀) CFile::modeWrite(打開文件,只寫)CFile::modeReadWrite(打開文件,文件可讀寫);CFileException*pError是文件異常類的指針,采用缺省值即可。,2)文件的讀寫操作 對文件進行讀寫操作的核心函數(shù)是Read()函數(shù)和Write()函數(shù)。 對
15、文件進行寫操作的函數(shù)是:void Write(const void*lpBuf, UINT nCount),參數(shù)lpBuf是要寫入文件的數(shù)據(jù)所存放的地址,nCount是一次寫入的字節(jié)數(shù)。 對文件進行讀操作的函數(shù)是:UINT Read(void*lpBuf, UINT nCount),函數(shù)返回值是讀入數(shù)據(jù)的字節(jié)數(shù),參數(shù)lpBuf是從文件讀入的數(shù)據(jù)要存放的地址,nCount是讀入數(shù)據(jù)的字節(jié)數(shù)。,3)文件的定位操
16、作 文件的定位操作中最常用的函數(shù)是Seek()函數(shù),該函數(shù)的原型是:LONG Seek(LONG lOff, UINT nFrom)。參數(shù)lOff表示文件移動的字節(jié)數(shù),nFrom表示從何處開始移動,其中nFrom有下面的幾種取值: CFile::begin表示把文件定位指針從文件頭向前移動lOff個字節(jié)(指向文件末尾的方向為向前)。 CFile::end表示把文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對話框及其控件的使用
- vcmfc對話框和常用教程
- mfc對話框打印預覽實現(xiàn)
- vcmfc對話框和常用教程
- 第01課使用creo parametric窗口和對話框
- mfc 設置對話框背景圖片
- vb編程之對話框設計1
- orcadcapture對話框中英對照表
- vba中的對話框和自定義窗體
- orcadlayout對話框中英對照表
- 對話框程序界面設計--計算器
- mfc課程設計-調整對話框背景顏色
- 修改對話框為bcg工程、手動添加控件
- 創(chuàng)建和使用對話框框
- java課程設計報告--利用java設計簡單聊天對話框
- 用vc++6.0為對話框添加最小化按鈕和提示條
- mfc中設置對話框顏色、添加背景圖片、添加音樂的方法
- 基于linuxqt4下自定義對話框的設計與實現(xiàn)
- 陜西省銀行招聘計算機學知識點 窗口、菜單、對話框的組成及操作試題
- 職稱計算機考試xp利用顯示屬性對話框,設置桌面上顯示我的電腦和我的文檔圖標
評論
0/150
提交評論