




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2022-6-271C+面向?qū)ο蟪绦蛟O(shè)計普通高等教育“十一五”國家級規(guī)劃教材中國高等院校計算機基礎(chǔ)教育課程體系規(guī)劃教材譚浩強 編著 湖南工業(yè)大學(xué) 計算機與通信學(xué)院2022-6-272第16講 VC+6.0基本控件的使用16.1 授課內(nèi)容授課內(nèi)容VC+6.0基本控件的使用基本控件的使用。主要內(nèi)容:1基于對話框結(jié)構(gòu)的程序設(shè)計;2在基于對話框結(jié)構(gòu)的界面上添加菜單;3創(chuàng)建模態(tài)對話框和非模態(tài)對話框;4常用控件的使用。2022-6-273第16講 VC+6.0基本控件的使用16.2 授課要求授課要求1掌握基于對話框結(jié)構(gòu)的程序設(shè)計;掌握基于對話框結(jié)構(gòu)的程序設(shè)計;2掌握在基于對話框結(jié)構(gòu)的界面上添加菜單;掌握在
2、基于對話框結(jié)構(gòu)的界面上添加菜單;3掌握創(chuàng)建模態(tài)對話框和非模態(tài)對話框;掌握創(chuàng)建模態(tài)對話框和非模態(tài)對話框;4熟悉常用控件的使用。熟悉常用控件的使用。2022-6-274第16講 VC+6.0基本控件的使用16.3 授課重點授課重點1重點是常用控件的使用。重點是常用控件的使用。16.4 授課難點授課難點1難點是熟練掌握常用控件的使用方法。難點是熟練掌握常用控件的使用方法。2022-6-2751基于對話框的應(yīng)用程序設(shè)計基于對話框的應(yīng)用程序設(shè)計基于對話框的應(yīng)用程序結(jié)構(gòu)適合于比較簡單的應(yīng)用程序。(1)生成基于對話框的應(yīng)用程序)生成基于對話框的應(yīng)用程序 第第1步:步:對話框中,選擇生成Dialog Base
3、d(基于對話框)的應(yīng)用程序即可 。第第2步:步:用于設(shè)置應(yīng)用程序的屬性,包括是否使用版權(quán)對話框、是否需要生成上下文有關(guān)的幫助、是否使用3D風(fēng)格的控件,以及是否需要對ActiveX控件的支持等問題。 第第3步:步:用于設(shè)置程序風(fēng)格。第第4步:步:用于檢查和修改擬為應(yīng)用程序生成的類的有關(guān)參數(shù) 。即生成基于對話框的應(yīng)用程序。2022-6-276利用向?qū)傻幕趯υ捒虻膽?yīng)用程序界面:2022-6-277(2)設(shè)置對話框界面的屬性編輯主對話框,按右鍵選擇屬性,則可設(shè)置對話框的屬性。常用的屬性有:基本屬性(General):字體、菜單、對話框所處位置等;風(fēng)格(Styles):系統(tǒng)菜單、最大化、最小化、滾
4、動條等;更多風(fēng)格(More Styles)、擴展風(fēng)格、更多擴展風(fēng)格。 2022-6-278設(shè)置界面風(fēng)格后的效果圖2022-6-279(3)對話框的初始化對話框的初始化工作一般在構(gòu)造函數(shù)和CDialog:OnInitDialog ()函數(shù)中完成。在對話框創(chuàng)建時,會收到WM_INITDIALOG消息,對話框?qū)υ撓⒌奶幚砗瘮?shù)是OnInitDialog()。如果必要,用ClassWizard重載此函數(shù)。2022-6-2710(4)對話框數(shù)據(jù)交換和數(shù)據(jù)檢驗機制控件與用戶的數(shù)據(jù)交流和檢驗機制通過CDialog:DoDataExchange()函數(shù)來完成,其原型為:virtual void DoDataE
5、xchange ( CDataExchange * pDX );成員變量的值 與 控件顯示的值之間的傳遞方向由下面兩個函數(shù)決定:UpdateData(TRUE); /從對話框到變量從對話框到變量UpdateData(FALSE); /從變量到對話框從變量到對話框2022-6-27112在基于對話框結(jié)構(gòu)的界面上添加菜單在基于對話框結(jié)構(gòu)的界面上添加菜單(1)新建菜單資源)新建菜單資源在資源工作區(qū)中添加一新的菜單,然后編輯此菜單。(2)添加到對話框上)添加到對話框上編輯對話框資源,選擇對話框?qū)傩?,在彈出的屬性對彈出的屬性對話框中,在話框中,在菜單選項中選中需要添加的菜單菜單選項中選中需要添加的菜單I
6、D,即可。2022-6-2712添加菜單后的界面圖2022-6-27134模態(tài)對話框和非模態(tài)對話框模態(tài)對話框和非模態(tài)對話框(1)含義對話框按其動作模式分為“有模式”和“無模式”兩大類。有模式有模式對話框在被關(guān)閉之前,用戶無法再進行其它工無法再進行其它工作作;無模式無模式對話框被關(guān)閉之前,用戶可以在應(yīng)用程序的其可以在應(yīng)用程序的其它窗口中進行工作它窗口中進行工作。當有模式對話框被打開之后,它就接管了父窗口的輸入控制權(quán),只有當用戶關(guān)閉了該對話框之后,控制權(quán)才交給父窗口。而無模式對話框則與父窗口共享控制權(quán),用戶可以在主窗口和對話框之間來回切換。2022-6-2714(2)使用有模式對話框)使用有模式對
7、話框方法如下:(a)編輯對話框資源。在Insert菜單中選擇Resource菜單項或直接按下Ctrl+R加速鍵,打開Insert Resource對話框,如圖1所示。 圖12022-6-2715在對話框中選取Dialog圖標,然后單擊New按鈕,這時將建立一個新的對話框,并打開對話框編輯器,如圖2所示。圖22022-6-2716(b)為對話框建立一個新類,然后創(chuàng)建對話框類的對象,才能使用這個資源。 (c)打開模態(tài)對話框。在某類中,要使用模態(tài)對話框,則:通過類向?qū)Ы⒓尤腩^文件:該模態(tài)對話框類的頭文件。定義模態(tài)對話框類對象: 類名 對象名;顯示該模態(tài)對話框: 對象.DoModal( );看演示2
8、022-6-2717(3)使用非模態(tài)對話框)使用非模態(tài)對話框使用非模態(tài)對話框的方法如下:(a)首先建立非模態(tài)對話框資源和對話框類,與前(a)和(b)兩步一樣。(b)在要用到的類中定義一個成員變量,即一個指向非模態(tài)對話框的指針。比如:DialModalLess *m_pModelless; /定義時,需要包含頭文件。2022-6-2718(3)使用非模態(tài)對話框)使用非模態(tài)對話框(c)用下列語句打開非模態(tài)對話框:/判斷指針是否為NULL,如果為NULL,說明對話框沒有創(chuàng)建,則動態(tài)創(chuàng)建對話框if(m_pModelless=NULL)m_pModelless=new DialModalLess();m
9、_pModelless-Create( IDD_DIALOGModalLess,this);m_pModelless-ShowWindow(SW_SHOW); /顯示對話框看演示2022-6-2719(3)使用非模態(tài)對話框)使用非模態(tài)對話框注意:注意:(a)非模態(tài)對話框的模板資源必須具有Visible風(fēng)格 ;(b)非模態(tài)對話框?qū)ο笫怯胣ew操作符動態(tài)創(chuàng)建的 ;(c)通過調(diào)用CDialog:Create()函數(shù)來啟動非模態(tài)對話框 ;(d)必須重載并重新編寫對話框的OnOK()和OnCancel()函數(shù); (e)必須在對話框關(guān)閉后,用delete操作符刪除之; (f)必須有一個標志表明非模態(tài)對話框
10、是否打開。2022-6-27204公用對話框公用對話框 (1)CColorDialog(顏色選擇對話框類) (2)CFontDialog(字體選擇對話框類) (3)CPrintDialog(打印和打印設(shè)置對話框類) (4)CFindReplaceDialog(文本查找和替換對話框類) (5)CFileDialog(文件選擇對話框類) 這兩個可以直接這樣打開使用:這兩個可以直接這樣打開使用:CFontDialog f;f.DoModal();2022-6-27214公用對話框公用對話框CFileDialog示例:CString m_fileName; CFileDialog FileDlg(tr
11、ue,“*.bmp”,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,“bmp文件(*.bmp)|*.bmp;);*.bmp|所有文件(*.*)|*.*|); if(FileDlg.DoModal()=IDOK) m_fileName=FileDlg.GetFileName(); /UpdateData(false);2022-6-27225在對話框中加入控件在對話框中加入控件(1)控件 控件:一個現(xiàn)成的程序組件,可以獨立運行以完成一定的功能 。控件(Control)是Windows提供的獨立小部件,控件都是CWnd類派生出來的后代類對象,實際上也是一個窗口
12、,對應(yīng)一個CWnd派生類的對象。每個控件均有一個標識符(ID)。2022-6-2723(2)對話框與控件對話框與控件是密不可分的。Windows提供了一批基本控件,如靜態(tài)控件(Static Text)、編輯控件(Edit Box)、組框、列表框等,可解決大部分用戶輸入界面設(shè)計的需求。 2022-6-2724(3)向?qū)υ捒蚣尤肟丶趯υ捒蛸Y源編輯窗口旁邊有一個控件工具箱,如圖3所示,使用其中的工具可以向?qū)υ捒蛟黾涌丶?。圖3 Controls工具箱2022-6-2725(4)對齊控件為使對話框布局美觀,需要精確地對齊控件需要精確地對齊控件。首先選中需要對齊的控件(用鼠標左鍵拖放一個矩形,使其包含所
13、需控件;或按住Ctrl鍵,然后用鼠標左鍵逐個選取控件),再使用再使用“控件對齊欄控件對齊欄”的各個按的各個按鈕來對齊控件鈕來對齊控件,如圖4所示。看演示2022-6-27262022-6-2727(5)為對話框類加入成員變量)為對話框類加入成員變量對話框的主要功能是輸出和輸入數(shù)據(jù),這個任務(wù)是通過控件完成的。為此,要為這些控件定義一個對應(yīng)的為這些控件定義一個對應(yīng)的成員變量成員變量。與控件對應(yīng)的成員變量既可以是一個數(shù)據(jù),也可以是成員變量既可以是一個數(shù)據(jù),也可以是一個控件對象一個控件對象。利用利用ClassWizard可以很方便地為對話框類添加數(shù)據(jù)可以很方便地為對話框類添加數(shù)據(jù)成員成員,在彈出的對話
14、框中選擇“member variables”,即可增加對應(yīng)的成員變量。2022-6-2728看演示2022-6-27296常用控件的使用常用控件的使用(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-6-2730(2)控件的使用A靜態(tài)文
15、本(靜態(tài)文本(Static Text)控件和組框()控件和組框(Group Box)控件控件這兩個控件直接添加上去,然后設(shè)置適當?shù)膶傩灾稻涂桑话悴恍枇硗饩幊?。靜態(tài)文本一般用于文字提示。組框用于把一些相同(或相似)功能的控件布局在一起。2022-6-2731(2)控件的使用文本框組框2022-6-2732(2)控件的使用選定一組控件的方法:選定一組控件的方法:(a)先通過菜單Layout/Tab Order設(shè)置好對話框中控件的跳格順序。(b)設(shè)置控件屬性,每組的第一個控件選中Group屬性,同組的其他控件就不要選中Group屬性。(c)另一組開始,再重復(fù)(b)步。注意:將控件組成一組并不靠組框
16、(注意:將控件組成一組并不靠組框(Group Box)控)控件起作用,件起作用,而是靠屬性框中的而是靠屬性框中的General標簽中的標簽中的Group屬性和控件的跳格順序(屬性和控件的跳格順序(Tab Order)決定的)決定的。2022-6-27332022-6-2734B編輯(編輯(Edit Box)控件)控件編輯控件的作用是接受用戶輸入的字符串信息。 它的ID很重要,因為要實現(xiàn)數(shù)據(jù)交換。使用方法:(a)添加編輯框控件,并設(shè)置屬性。(b)為編輯框控件加入成員變量。 利用類向?qū)Ъ纯商砑印#╟)成員變量的值 與 控件顯示的值之間的傳遞。傳遞方法:UpdateData(TRUE); /從對話框
17、到變量從對話框到變量UpdateData(FALSE); /從變量到對話框從變量到對話框注意:變量的類型。2022-6-2735比如:下圖中編輯框?qū)?yīng)的變量名為:m_Num1、m_Num2、m_Result。計算兩個數(shù)的和并顯示出來。void CKJ17_1Dlg:OnEqual() UpdateData(TRUE);m_Result = m_Num1 + m_Num2;UpdateData(FALSE);代碼2022-6-2736C按鈕(按鈕(Button)控件)控件命令按鈕,用于執(zhí)行一個自編函數(shù)或功能。使用方法:(a)添加按鈕,并設(shè)置屬性。(b)添加消息響應(yīng)函數(shù)。通過類向?qū)砑覤N_CLI
18、CKED消息響應(yīng)函數(shù)。(c)編輯消息響應(yīng)函數(shù)。比如:前面的計算兩個數(shù)的和的“=”命令函數(shù)。 2022-6-2737D檢查框(檢查框(Check Box)控件)控件它是復(fù)選框控件,可以從中選擇多個從中選擇多個。檢查框檢查框使用方法:(a)添加控件,設(shè)置屬性。一般把幾個一組的檢查框用組框框在一起,并設(shè)置為一組。(b)為每一個控件添加一個BOOL類型的變量。當一個控件被選中時,所對應(yīng)的變量值為真(TRUE),否則為假(FALSE)。圖72022-6-2738D檢查框(檢查框(Check Box)控件)控件比如:對圖7所示的檢查框定義三個BOOL變量m_Chk1、 m_Chk2、 m_Chk3,增加一
19、個測試按鈕,測試代碼如下:void CKJ17_1Dlg:OnTestCheck() UpdateData(TRUE); /不能少CString str=;if (m_Chk1) str+=選中1. ;if (m_Chk2) str+=選中2. ;if (m_Chk3) str+=選中3. ; AfxMessageBox(str);2022-6-2739測試效果見圖8。 圖7 圖82022-6-2740E單選按鈕(單選按鈕(Radio Button)控件)控件這是單選框控件,只能從中選擇一個。使用方法:(a)添加控件,設(shè)置屬性。一般把一組的幾個單選框用組框框在一起,并設(shè)置為一組。(b)為整個組
20、定義一個整型變量,變量值對應(yīng)的值從0開始(即0,1,2,)。比如:對圖9所示的單選框定義一個int變量m_Radio,增加一個測試按鈕。2022-6-2741測試代碼如下:void CKJ17_1Dlg:OnTestRadio() UpdateData(TRUE);/不能少CString str=;str.Format(“選中第 %d 個 單選框。,m_Radio);AfxMessageBox(str);圖9 圖10 2022-6-2742F列表框(列表框(List Control)控件)控件List控件以列表的形式顯示數(shù)據(jù),一般可以用來顯示數(shù)據(jù)的子集,如數(shù)據(jù)庫中表的數(shù)據(jù)。List控件與CLi
21、stCtrl類相關(guān)聯(lián)。使用方法:(a)添加控件,設(shè)置屬性:Styles的查看為Report。(b)為該控件添加一個成員變量,為CListCtrl類對象。 比如:CListCtrl m_ListCtrl; (c)設(shè)置初值,再用戶選擇,然后讀取用戶選擇的值。2022-6-2743比如:對下圖的列表框進行測試,代碼如下。void CKJ17_1Dlg:OnSetList( ) int i;m_ListCtrl.InsertColumn(0,學(xué)號,LVCFMT_LEFT,50,-1);m_ListCtrl.InsertColumn(1,姓名,LVCFMT_LEFT,100,-1);m_ListCtrl.InsertColumn(2,性別,LVCFMT_LEFT,150,-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水泥購銷合同協(xié)議
- 環(huán)保水處理項目合作框架協(xié)議
- 學(xué)校食堂蔬菜采購合同
- 股份制企業(yè)的合同文書規(guī)范與管理
- 蔬菜種植合作的協(xié)議書(3篇)
- 兩人合作合同
- 環(huán)保產(chǎn)業(yè)技術(shù)創(chuàng)新與應(yīng)用合同
- 公司股權(quán)分配合同協(xié)議年
- 派遣合同就業(yè)協(xié)議書
- 人才委托協(xié)議
- 醫(yī)院輿情應(yīng)對處置預(yù)案
- 方法驗證報告方案
- 關(guān)于企業(yè)高層管理人員職責(zé)的通知
- 電除顫并發(fā)癥的處理及預(yù)防
- 2024年中國華電集團招聘筆試參考題庫含答案解析
- 04干部人事檔案目錄
- (新湘科版)六年級下冊科學(xué)知識點
- 磁共振成像(MRI)基本知識及臨床應(yīng)用
- 商業(yè)銀行不良資產(chǎn)處置方式匯總課件
- 注塑生產(chǎn)過程控制流程
- 三相分離器操作手冊
評論
0/150
提交評論