




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-3-31C+面向?qū)ο蟪绦蛟O(shè)計(jì)普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系規(guī)劃教材譚浩強(qiáng) 編著 湖南工業(yè)大學(xué) 計(jì)算機(jī)與通信學(xué)院2022-3-32第16講 VC+6.0基本控件的使用16.1 授課內(nèi)容授課內(nèi)容VC+6.0基本控件的使用基本控件的使用。主要內(nèi)容:1基于對(duì)話框結(jié)構(gòu)的程序設(shè)計(jì);2在基于對(duì)話框結(jié)構(gòu)的界面上添加菜單;3創(chuàng)建模態(tài)對(duì)話框和非模態(tài)對(duì)話框;4常用控件的使用。2022-3-33第16講 VC+6.0基本控件的使用16.2 授課要求授課要求1掌握基于對(duì)話框結(jié)構(gòu)的程序設(shè)計(jì);掌握基于對(duì)話框結(jié)構(gòu)的程序設(shè)計(jì);2掌握在基于對(duì)話框結(jié)構(gòu)的界面上添加菜單;掌握在基于對(duì)
2、話框結(jié)構(gòu)的界面上添加菜單;3掌握創(chuàng)建模態(tài)對(duì)話框和非模態(tài)對(duì)話框;掌握創(chuàng)建模態(tài)對(duì)話框和非模態(tài)對(duì)話框;4熟悉常用控件的使用。熟悉常用控件的使用。2022-3-34第16講 VC+6.0基本控件的使用16.3 授課重點(diǎn)授課重點(diǎn)1重點(diǎn)是常用控件的使用。重點(diǎn)是常用控件的使用。16.4 授課難點(diǎn)授課難點(diǎn)1難點(diǎn)是熟練掌握常用控件的使用方法。難點(diǎn)是熟練掌握常用控件的使用方法。2022-3-351基于對(duì)話框的應(yīng)用程序設(shè)計(jì)基于對(duì)話框的應(yīng)用程序設(shè)計(jì)基于對(duì)話框的應(yīng)用程序結(jié)構(gòu)適合于比較簡(jiǎn)單的應(yīng)用程序。(1)生成基于對(duì)話框的應(yīng)用程序)生成基于對(duì)話框的應(yīng)用程序 第第1步:步:對(duì)話框中,選擇生成Dialog Based(基于對(duì)
3、話框)的應(yīng)用程序即可 。第第2步:步:用于設(shè)置應(yīng)用程序的屬性,包括是否使用版權(quán)對(duì)話框、是否需要生成上下文有關(guān)的幫助、是否使用3D風(fēng)格的控件,以及是否需要對(duì)ActiveX控件的支持等問題。 第第3步:步:用于設(shè)置程序風(fēng)格。第第4步:步:用于檢查和修改擬為應(yīng)用程序生成的類的有關(guān)參數(shù) 。即生成基于對(duì)話框的應(yīng)用程序。2022-3-36利用向?qū)傻幕趯?duì)話框的應(yīng)用程序界面:2022-3-37(2)設(shè)置對(duì)話框界面的屬性編輯主對(duì)話框,按右鍵選擇屬性,則可設(shè)置對(duì)話框的屬性。常用的屬性有:基本屬性(General):字體、菜單、對(duì)話框所處位置等;風(fēng)格(Styles):系統(tǒng)菜單、最大化、最小化、滾動(dòng)條等;更多風(fēng)
4、格(More Styles)、擴(kuò)展風(fēng)格、更多擴(kuò)展風(fēng)格。 2022-3-38設(shè)置界面風(fēng)格后的效果圖2022-3-39(3)對(duì)話框的初始化對(duì)話框的初始化工作一般在構(gòu)造函數(shù)和CDialog:OnInitDialog ()函數(shù)中完成。在對(duì)話框創(chuàng)建時(shí),會(huì)收到WM_INITDIALOG消息,對(duì)話框?qū)υ撓⒌奶幚砗瘮?shù)是OnInitDialog()。如果必要,用ClassWizard重載此函數(shù)。2022-3-310(4)對(duì)話框數(shù)據(jù)交換和數(shù)據(jù)檢驗(yàn)機(jī)制控件與用戶的數(shù)據(jù)交流和檢驗(yàn)機(jī)制通過(guò)CDialog:DoDataExchange()函數(shù)來(lái)完成,其原型為:virtual void DoDataExchange (
5、CDataExchange * pDX );成員變量的值 與 控件顯示的值之間的傳遞方向由下面兩個(gè)函數(shù)決定:UpdateData(TRUE); /從對(duì)話框到變量從對(duì)話框到變量UpdateData(FALSE); /從變量到對(duì)話框從變量到對(duì)話框2022-3-3112在基于對(duì)話框結(jié)構(gòu)的界面上添加菜單在基于對(duì)話框結(jié)構(gòu)的界面上添加菜單(1)新建菜單資源)新建菜單資源在資源工作區(qū)中添加一新的菜單,然后編輯此菜單。(2)添加到對(duì)話框上)添加到對(duì)話框上編輯對(duì)話框資源,選擇對(duì)話框?qū)傩?,在彈出的屬性?duì)彈出的屬性對(duì)話框中,在話框中,在菜單選項(xiàng)中選中需要添加的菜單菜單選項(xiàng)中選中需要添加的菜單ID,即可。2022-3
6、-312添加菜單后的界面圖2022-3-3134模態(tài)對(duì)話框和非模態(tài)對(duì)話框模態(tài)對(duì)話框和非模態(tài)對(duì)話框(1)含義對(duì)話框按其動(dòng)作模式分為“有模式”和“無(wú)模式”兩大類。有模式有模式對(duì)話框在被關(guān)閉之前,用戶無(wú)法再進(jìn)行其它工無(wú)法再進(jìn)行其它工作作;無(wú)模式無(wú)模式對(duì)話框被關(guān)閉之前,用戶可以在應(yīng)用程序的其可以在應(yīng)用程序的其它窗口中進(jìn)行工作它窗口中進(jìn)行工作。當(dāng)有模式對(duì)話框被打開之后,它就接管了父窗口的輸入控制權(quán),只有當(dāng)用戶關(guān)閉了該對(duì)話框之后,控制權(quán)才交給父窗口。而無(wú)模式對(duì)話框則與父窗口共享控制權(quán),用戶可以在主窗口和對(duì)話框之間來(lái)回切換。2022-3-314(2)使用有模式對(duì)話框)使用有模式對(duì)話框方法如下:(a)編輯對(duì)話
7、框資源。在Insert菜單中選擇Resource菜單項(xiàng)或直接按下Ctrl+R加速鍵,打開Insert Resource對(duì)話框,如圖1所示。 圖12022-3-315在對(duì)話框中選取Dialog圖標(biāo),然后單擊New按鈕,這時(shí)將建立一個(gè)新的對(duì)話框,并打開對(duì)話框編輯器,如圖2所示。圖22022-3-316(b)為對(duì)話框建立一個(gè)新類,然后創(chuàng)建對(duì)話框類的對(duì)象,才能使用這個(gè)資源。 (c)打開模態(tài)對(duì)話框。在某類中,要使用模態(tài)對(duì)話框,則:通過(guò)類向?qū)Ы⒓尤腩^文件:該模態(tài)對(duì)話框類的頭文件。定義模態(tài)對(duì)話框類對(duì)象: 類名 對(duì)象名;顯示該模態(tài)對(duì)話框: 對(duì)象.DoModal( );看演示2022-3-317(3)使用非模
8、態(tài)對(duì)話框)使用非模態(tài)對(duì)話框使用非模態(tài)對(duì)話框的方法如下:(a)首先建立非模態(tài)對(duì)話框資源和對(duì)話框類,與前(a)和(b)兩步一樣。(b)在要用到的類中定義一個(gè)成員變量,即一個(gè)指向非模態(tài)對(duì)話框的指針。比如:DialModalLess *m_pModelless; /定義時(shí),需要包含頭文件。2022-3-318(3)使用非模態(tài)對(duì)話框)使用非模態(tài)對(duì)話框(c)用下列語(yǔ)句打開非模態(tài)對(duì)話框:/判斷指針是否為NULL,如果為NULL,說(shuō)明對(duì)話框沒有創(chuàng)建,則動(dòng)態(tài)創(chuàng)建對(duì)話框if(m_pModelless=NULL)m_pModelless=new DialModalLess();m_pModelless-Create
9、( IDD_DIALOGModalLess,this);m_pModelless-ShowWindow(SW_SHOW); /顯示對(duì)話框看演示2022-3-319(3)使用非模態(tài)對(duì)話框)使用非模態(tài)對(duì)話框注意:注意:(a)非模態(tài)對(duì)話框的模板資源必須具有Visible風(fēng)格 ;(b)非模態(tài)對(duì)話框?qū)ο笫怯胣ew操作符動(dòng)態(tài)創(chuàng)建的 ;(c)通過(guò)調(diào)用CDialog:Create()函數(shù)來(lái)啟動(dòng)非模態(tài)對(duì)話框 ;(d)必須重載并重新編寫對(duì)話框的OnOK()和OnCancel()函數(shù); (e)必須在對(duì)話框關(guān)閉后,用delete操作符刪除之; (f)必須有一個(gè)標(biāo)志表明非模態(tài)對(duì)話框是否打開。2022-3-3204公用對(duì)
10、話框公用對(duì)話框 (1)CColorDialog(顏色選擇對(duì)話框類) (2)CFontDialog(字體選擇對(duì)話框類) (3)CPrintDialog(打印和打印設(shè)置對(duì)話框類) (4)CFindReplaceDialog(文本查找和替換對(duì)話框類) (5)CFileDialog(文件選擇對(duì)話框類) 這兩個(gè)可以直接這樣打開使用:這兩個(gè)可以直接這樣打開使用:CFontDialog f;f.DoModal();2022-3-3214公用對(duì)話框公用對(duì)話框CFileDialog示例:CString m_fileName; CFileDialog FileDlg(true,“*.bmp”,NULL,OFN_H
11、IDEREADONLY|OFN_OVERWRITEPROMPT,“bmp文件(*.bmp)|*.bmp;);*.bmp|所有文件(*.*)|*.*|); if(FileDlg.DoModal()=IDOK) m_fileName=FileDlg.GetFileName(); /UpdateData(false);2022-3-3225在對(duì)話框中加入控件在對(duì)話框中加入控件(1)控件 控件:一個(gè)現(xiàn)成的程序組件,可以獨(dú)立運(yùn)行以完成一定的功能 。控件(Control)是Windows提供的獨(dú)立小部件,控件都是CWnd類派生出來(lái)的后代類對(duì)象,實(shí)際上也是一個(gè)窗口,對(duì)應(yīng)一個(gè)CWnd派生類的對(duì)象。每個(gè)控件均有
12、一個(gè)標(biāo)識(shí)符(ID)。2022-3-323(2)對(duì)話框與控件對(duì)話框與控件是密不可分的。Windows提供了一批基本控件,如靜態(tài)控件(Static Text)、編輯控件(Edit Box)、組框、列表框等,可解決大部分用戶輸入界面設(shè)計(jì)的需求。 2022-3-324(3)向?qū)υ捒蚣尤肟丶趯?duì)話框資源編輯窗口旁邊有一個(gè)控件工具箱,如圖3所示,使用其中的工具可以向?qū)υ捒蛟黾涌丶?。圖3 Controls工具箱2022-3-325(4)對(duì)齊控件為使對(duì)話框布局美觀,需要精確地對(duì)齊控件需要精確地對(duì)齊控件。首先選中需要對(duì)齊的控件(用鼠標(biāo)左鍵拖放一個(gè)矩形,使其包含所需控件;或按住Ctrl鍵,然后用鼠標(biāo)左鍵逐個(gè)選取控
13、件),再使用再使用“控件對(duì)齊欄控件對(duì)齊欄”的各個(gè)按的各個(gè)按鈕來(lái)對(duì)齊控件鈕來(lái)對(duì)齊控件,如圖4所示??囱菔?022-3-3262022-3-327(5)為對(duì)話框類加入成員變量)為對(duì)話框類加入成員變量對(duì)話框的主要功能是輸出和輸入數(shù)據(jù),這個(gè)任務(wù)是通過(guò)控件完成的。為此,要為這些控件定義一個(gè)對(duì)應(yīng)的為這些控件定義一個(gè)對(duì)應(yīng)的成員變量成員變量。與控件對(duì)應(yīng)的成員變量既可以是一個(gè)數(shù)據(jù),也可以是成員變量既可以是一個(gè)數(shù)據(jù),也可以是一個(gè)控件對(duì)象一個(gè)控件對(duì)象。利用利用ClassWizard可以很方便地為對(duì)話框類添加數(shù)據(jù)可以很方便地為對(duì)話框類添加數(shù)據(jù)成員成員,在彈出的對(duì)話框中選擇“member variables”,即可增加
14、對(duì)應(yīng)的成員變量。2022-3-328看演示2022-3-3296常用控件的使用常用控件的使用(1)常用的控件有:)常用的控件有:A靜態(tài)文本(Static Text)控件 ;B編輯(Edit Box)控件 ; C按鈕(Button)控件 ; D檢查框(Check Box)控件 ;E單選按鈕(Radio Button)控件 ;F列表框(List Control)控件 ;G組框(Group Box)控件 ;H圖片(Picture)控件 ;J組合框(Combo Box)是編輯控件和列表框的組合 。 2022-3-330(2)控件的使用A靜態(tài)文本(靜態(tài)文本(Static Text)控件和組框()控件和組
15、框(Group Box)控件控件這兩個(gè)控件直接添加上去,然后設(shè)置適當(dāng)?shù)膶傩灾稻涂?,一般不需另外編程。靜態(tài)文本一般用于文字提示。組框用于把一些相同(或相似)功能的控件布局在一起。2022-3-331(2)控件的使用文本框組框2022-3-332(2)控件的使用選定一組控件的方法:選定一組控件的方法:(a)先通過(guò)菜單Layout/Tab Order設(shè)置好對(duì)話框中控件的跳格順序。(b)設(shè)置控件屬性,每組的第一個(gè)控件選中Group屬性,同組的其他控件就不要選中Group屬性。(c)另一組開始,再重復(fù)(b)步。注意:將控件組成一組并不靠組框(注意:將控件組成一組并不靠組框(Group Box)控)控件起
16、作用,件起作用,而是靠屬性框中的而是靠屬性框中的General標(biāo)簽中的標(biāo)簽中的Group屬性和控件的跳格順序(屬性和控件的跳格順序(Tab Order)決定的)決定的。2022-3-3332022-3-334B編輯(編輯(Edit Box)控件)控件編輯控件的作用是接受用戶輸入的字符串信息。 它的ID很重要,因?yàn)橐獙?shí)現(xiàn)數(shù)據(jù)交換。使用方法:(a)添加編輯框控件,并設(shè)置屬性。(b)為編輯框控件加入成員變量。 利用類向?qū)Ъ纯商砑?。(c)成員變量的值 與 控件顯示的值之間的傳遞。傳遞方法:UpdateData(TRUE); /從對(duì)話框到變量從對(duì)話框到變量UpdateData(FALSE); /從變量到
17、對(duì)話框從變量到對(duì)話框注意:變量的類型。2022-3-335比如:下圖中編輯框?qū)?yīng)的變量名為:m_Num1、m_Num2、m_Result。計(jì)算兩個(gè)數(shù)的和并顯示出來(lái)。void CKJ17_1Dlg:OnEqual() UpdateData(TRUE);m_Result = m_Num1 + m_Num2;UpdateData(FALSE);代碼2022-3-336C按鈕(按鈕(Button)控件)控件命令按鈕,用于執(zhí)行一個(gè)自編函數(shù)或功能。使用方法:(a)添加按鈕,并設(shè)置屬性。(b)添加消息響應(yīng)函數(shù)。通過(guò)類向?qū)砑覤N_CLICKED消息響應(yīng)函數(shù)。(c)編輯消息響應(yīng)函數(shù)。比如:前面的計(jì)算兩個(gè)數(shù)的和
18、的“=”命令函數(shù)。 2022-3-337D檢查框(檢查框(Check Box)控件)控件它是復(fù)選框控件,可以從中選擇多個(gè)從中選擇多個(gè)。檢查框檢查框使用方法:(a)添加控件,設(shè)置屬性。一般把幾個(gè)一組的檢查框用組框框在一起,并設(shè)置為一組。(b)為每一個(gè)控件添加一個(gè)BOOL類型的變量。當(dāng)一個(gè)控件被選中時(shí),所對(duì)應(yīng)的變量值為真(TRUE),否則為假(FALSE)。圖72022-3-338D檢查框(檢查框(Check Box)控件)控件比如:對(duì)圖7所示的檢查框定義三個(gè)BOOL變量m_Chk1、 m_Chk2、 m_Chk3,增加一個(gè)測(cè)試按鈕,測(cè)試代碼如下:void CKJ17_1Dlg:OnTestChe
19、ck() UpdateData(TRUE); /不能少CString str=;if (m_Chk1) str+=選中1. ;if (m_Chk2) str+=選中2. ;if (m_Chk3) str+=選中3. ; AfxMessageBox(str);2022-3-339測(cè)試效果見圖8。 圖7 圖82022-3-340E單選按鈕(單選按鈕(Radio Button)控件)控件這是單選框控件,只能從中選擇一個(gè)。使用方法:(a)添加控件,設(shè)置屬性。一般把一組的幾個(gè)單選框用組框框在一起,并設(shè)置為一組。(b)為整個(gè)組定義一個(gè)整型變量,變量值對(duì)應(yīng)的值從0開始(即0,1,2,)。比如:對(duì)圖9所示的單
20、選框定義一個(gè)int變量m_Radio,增加一個(gè)測(cè)試按鈕。2022-3-341測(cè)試代碼如下:void CKJ17_1Dlg:OnTestRadio() UpdateData(TRUE);/不能少CString str=;str.Format(“選中第 %d 個(gè) 單選框。,m_Radio);AfxMessageBox(str);圖9 圖10 2022-3-342F列表框(列表框(List Control)控件)控件List控件以列表的形式顯示數(shù)據(jù),一般可以用來(lái)顯示數(shù)據(jù)的子集,如數(shù)據(jù)庫(kù)中表的數(shù)據(jù)。List控件與CListCtrl類相關(guān)聯(lián)。使用方法:(a)添加控件,設(shè)置屬性:Styles的查看為Report。(b)為該控件添加一個(gè)成員變量,為CListCtrl類對(duì)象。 比如:CListCtrl m_ListCtrl; (c)設(shè)置初值,再用戶選擇,然后讀取用戶選擇的值。2022-3-343比如:對(duì)下圖的列表框進(jìn)行測(cè)試,代碼如下。void CKJ17_1Dlg:OnSetList( ) int i;m_ListCtrl.InsertColumn(0,學(xué)號(hào),LVCFMT_LEFT,50,-1);m_ListCtrl.InsertColumn(1,姓名,LVCFMT_LEFT,100,-1);m_ListCtrl.InsertColumn(2,性別,LVCFMT_LEFT,150,-1)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 津滋陳列協(xié)議書
- 商業(yè)空間設(shè)計(jì)與施工配合合同
- 研發(fā)團(tuán)隊(duì)建設(shè)培訓(xùn)
- 道路標(biāo)牌采購(gòu)合同協(xié)議
- 路由器項(xiàng)目合同協(xié)議
- 汽車包月協(xié)議書
- 車子抵押開走合同協(xié)議
- 熱浸鍍鋅協(xié)議書
- 潮安離婚協(xié)議書
- 郵政快遞保密協(xié)議合同書
- 人教版語(yǔ)文三年級(jí)下冊(cè)第五單元測(cè)試卷
- 新外研版(一起)四年級(jí)英語(yǔ)下冊(cè)(全冊(cè))同步練習(xí)隨堂練習(xí)一課一練
- 我國(guó)經(jīng)皮冠狀動(dòng)脈介入治療指南
- 乙酸乙酯安全技術(shù)說(shuō)明書MSDS
- 2023年上海市高中學(xué)業(yè)水平考試之物理實(shí)驗(yàn)操作考試
- 最全螺栓扭矩表(各種標(biāo)準(zhǔn))
- 哈薩克族風(fēng)俗課件
- 《小英雄雨來(lái)》交流推進(jìn)課
- 2.18巴西和南美洲(共24張PPT)
- 國(guó)家開放大學(xué)《城市管理學(xué)》形考任務(wù)1-4試題及答案
- GB/T 21268-2014非公路用旅游觀光車通用技術(shù)條件
評(píng)論
0/150
提交評(píng)論