




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 概述 控件及其使用控件及其使用常用控件控件和類公共函數(shù)控件使用ActiveX控件第1章 概述 常用控件常用控件控件(Control) 控件是一種子窗口,用它來(lái)與其他窗口一起完成簡(jiǎn)單地輸入輸出操作。 控件各自有不同的用途 控件類型 常用控件 靜態(tài)文本,圖片控件,編輯框,群組控件,按鈕,復(fù)選控件,單選控件,組合框控件,列表框控件,列表框擴(kuò)展控件, 日期時(shí)間控件,旋轉(zhuǎn)按鈕控件,滑動(dòng)條控件 ActiveX控件第1章 概述 控件和類控件和類 CWnd:所有的控件都繼承于窗口類(CWnd),但它們屬于不同子類 CStatic:靜態(tài)文本框,圖片控件 CButton:按鍵按鈕,群組控件,復(fù)選框,單選框
2、 CEdit:編輯控件 CSpinButtonCtrl:數(shù)字滾選按鈕 CListBox:列表框 CScrollBar:滾動(dòng)條 CProgressCtrl:進(jìn)度條 CSliderCtrl:滑標(biāo)控件 CTreeCtrl:樹(shù)狀控件 CRichEditCtrl:多功能編輯框第1章 概述 公共函數(shù)公共函數(shù) 可以用CWnd類的函數(shù)來(lái)控制控件,CWnd類與控件有關(guān)的函數(shù): 1.啟用(或禁用)窗口函數(shù): BOOL EnableWindow( BOOL bEnable = TRUE ); bEnable為真表示啟用窗口,為假表示禁用窗口。禁用的窗口以灰色顯示,無(wú)法響應(yīng)用戶的輸入。 2.更新數(shù)據(jù)函數(shù): BOOL
3、UpdateData( BOOL bSaveAndValidate = TRUE ); 當(dāng)用戶完成輸入后,調(diào)用UpdateData(TRUE)來(lái)更新與控件相關(guān)聯(lián)的數(shù)據(jù); 當(dāng)應(yīng)用程序修改完數(shù)據(jù)后,調(diào)用UpdateData(FALSE)來(lái)更新控件的顯示。 CDialog類的UpdateData會(huì)調(diào)用此對(duì)話框上所有的控件的UpdateData。 CDialog的OnOK函數(shù)會(huì)自動(dòng)調(diào)用UpdateData(true)。第1章 概述 公共函數(shù)公共函數(shù) 3.顯示(或隱藏)窗口函數(shù): BOOL ShowWindow( int nCmdShow ); nCmdShow為SW_HIDE隱藏控件,為SW_SHOW
4、激活并顯示控件。 4.設(shè)置(或獲取)窗口文本函數(shù): SetWindowText GetWindowText 這兩個(gè)函數(shù)分別用于設(shè)置取得控件標(biāo)題。第1章 概述 公共函數(shù)公共函數(shù) 5.移動(dòng)窗口函數(shù): MoveWindow void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE ); void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE ); x、y是新窗口左上角的坐標(biāo),nWidth、nHeight是新窗口的寬和高。 lpRect是含有新窗口位置和坐
5、標(biāo)信息的CRect對(duì)象或RECT結(jié)構(gòu)。 bRepaint表示是否重繪。 如果是頂層窗口,坐標(biāo)是相對(duì)屏幕左上角的坐標(biāo),如果是子窗口坐標(biāo)是相對(duì)于父窗口的客戶區(qū)的左上角。 6.獲取窗口區(qū)域函數(shù): GetWindowRect 用于取得窗口相對(duì)于屏幕左上角的坐標(biāo)。 GetClientRect 用于取得窗口客戶區(qū)相對(duì)于自己的客戶區(qū)的坐標(biāo),左上角一定是(0,0)第1章 概述 控件使用控件使用 1.靜態(tài)文本框 Static Text 只進(jìn)行文本輸出,不能接受用戶輸入。 輸出文本,除通過(guò)屬性設(shè)置方法外,通過(guò)代碼方法動(dòng)態(tài)設(shè)置: 代碼方法1) 直接操作 獲取控件指針,調(diào)用成員函數(shù) 例示.建立基于對(duì)話框的應(yīng)用,編輯對(duì)
6、話框,添加靜態(tài)控件IDC_STATIC_TEXT 雙擊按鈕Test,在其消息響應(yīng)函數(shù)中添加; GetDlgItem(IDC_STATIC_TEXT)-SetWindowText(靜態(tài)控件測(cè)試!); 或 CStatic* pWnd = (CStatic*)GetDlgItem(IDC_STATIC_TEXT); pWnd-SetWindowText(靜態(tài)控件測(cè)試!);第1章 概述 控件使用控件使用 代碼方法2) 控件變量 設(shè)置控件類型變量成員,再調(diào)用其成員函數(shù) 例示.上例中, (1)利用類向?qū)?,設(shè)置靜態(tài)控件的成員變量: m_cText 控件類型; (2)雙擊按鈕Test,在其消息響應(yīng)函數(shù)中,修改
7、代碼: m_cText.SetWindowText(Its something .)第1章 概述 控件使用控件使用 代碼方法3) 值變量 設(shè)置值類型變量成員,再調(diào)用UpdateData函數(shù),獲取或顯示數(shù)據(jù) 例示.上例中, (1)利用類向?qū)?,設(shè)置靜態(tài)控件的成員變量: m_sText 字符串類型; (2)雙擊按鈕Test,修改代碼為: m_sText= Somthing else .; UpdateData(false);第1章 概述 控件使用控件使用 2.編輯框 可進(jìn)行輸出,也能接受用戶輸入。 用戶可以在編輯框中輸入文字、數(shù)字,并能剪切、粘貼、拷貝、刪除輸入字符。 編輯框獲得焦點(diǎn)時(shí),就會(huì)出現(xiàn)一個(gè)
8、閃動(dòng)的插入符,指明當(dāng)前插入的位置。 編輯框?qū)傩?Auto Hscroll 用戶輸入的內(nèi)容超過(guò)編輯框后,編輯框會(huì)自動(dòng)滾動(dòng);沒(méi)有選中時(shí),當(dāng)用戶輸入的內(nèi)容超過(guò)編輯框后,無(wú)法再輸入。 Password 輸入的內(nèi)容無(wú)法查看也不能被復(fù)制。 Read Only 只能輸出不能輸入,但可從此編輯框復(fù)制東西,再粘貼到其他地方。第1章 概述 控件使用控件使用 代碼控制 1)直接操控 SetWindowText和GetWindowText 分別用于設(shè)置和取得控件文本內(nèi)容; 2)成員變量Control類型; 3)成員變量Value類型 -適合處理數(shù)據(jù)CString,int,float,第1章 概述 控件使用控件使用 例
9、2 編輯框輸出代碼控制 (1)利用應(yīng)用程序向?qū)陆ㄒ粋€(gè)基于對(duì)話框的程序 (2)將已有的靜態(tài)文本框的標(biāo)題改成“請(qǐng)輸入一個(gè)0到100的整數(shù)”。 (3)增加一個(gè)編輯框。 (4)為這個(gè)編輯框關(guān)聯(lián)一個(gè)整數(shù)型的成員變量。按下Ctrl+W組合鍵打開(kāi)類向?qū)В?激活成員變量(Member Variables)屬性頁(yè),添加與IDC_EDIT1相關(guān)聯(lián)的Value類型變量成員, (5)變量的范圍:在最小值處輸入0,最大值處輸入100。 (6)雙擊對(duì)話框中的“OK”按鈕,為它添加響應(yīng)函數(shù)代碼: CString strMess ; strMess.Format(你輸入的是%dn,m_intValue); AfxMessa
10、geBox(strMess); (6)編譯運(yùn)行 注意: 上述代碼放在語(yǔ)句CDialog:OnOK()之后,該函數(shù)會(huì)自動(dòng)調(diào)用UpdateData(true)。 若放在該語(yǔ)句之前,需先加語(yǔ)句:UpdateData(true)。否則,數(shù)據(jù)顯示為0,不正確;第1章 概述 控件使用控件使用3.數(shù)字滾選按鈕 在編輯框右邊加一個(gè)數(shù)字滾選按鈕。 例 設(shè)置屬性: 選中“Auto buddy”; 選中“Set buddy integer”復(fù)選框; 對(duì)齊“right”; 編輯框的Tab Order一定比數(shù)字滾選按鈕小1。第1章 概述 控件使用控件使用 4.按鈕 按鍵按鈕,單選鈕,復(fù)選框和組框 例3 復(fù)選框和單選框
11、(1)利用應(yīng)用程序向?qū)陆ㄒ粋€(gè)基于對(duì)話框的程序 (2)在對(duì)話框上加一個(gè)靜態(tài)文本框和兩個(gè)單選框,標(biāo)題分別是“性別”、“男”、“女”, 第一個(gè)單選框選中群組(Group)屬性,按下Ctrl+T組合鍵測(cè)試一下,是否只能選“男”或“女”。 (3)利用類向?qū)?,為第一個(gè)單選框增加一個(gè)整型的成員變量m_iSex。 (4)增加1個(gè)靜態(tài)文本框和3個(gè)復(fù)選框,標(biāo)題分別是“個(gè)人愛(ài)好”、“中國(guó)象棋”、“上網(wǎng)聊天”和“電腦游戲”。 (5)雙擊“確定”按鈕增加響應(yīng)函數(shù)代碼:第1章 概述 控件使用控件使用 void CEx03Dlg:OnTest() /CDialog:OnOK(); UpdateData(true); CS
12、tring strMess ; if(0 = m_iSex) strMess = t您很帥!n; else if(1 = m_iSex) strMess = t您真漂亮!n; else strMess = 性別未知n; strMess += -n我還知道您的愛(ài)好:; CButton * pBtn = NULL ; pBtn = (CButton * )GetDlgItem(IDC_CHECK1); if(NULL != pBtn & pBtn-GetCheck() strMess += t圍棋; pBtn = (CButton * )GetDlgItem(IDC_CHECK2); if
13、(NULL != pBtn & pBtn-GetCheck() strMess += t足球; pBtn = (CButton * )GetDlgItem(IDC_CHECK3); if(NULL != pBtn & pBtn-GetCheck() strMess += t音樂(lè); MessageBox(strMess); 第1章 概述 控件使用控件使用6列表框 List Box 例 使用列表框 (1)續(xù)例3,在編輯對(duì)話框中,添加一個(gè)List Box 控件,和“姓名”靜態(tài)控件。 (2)增加一個(gè)ListBox,利用類向?qū)樗P(guān)聯(lián)一個(gè)控件型的成員變量,關(guān)聯(lián)的類是ClistBox,變量
14、名是m_nameListBox。 (3)在CEx03Dlg:OnInitDialog()函數(shù)中初始化ListBox。 BOOL CEx03Dlg:OnInitDialog() / int nItem = m_nameListBox.AddString(張三); nItem = m_nameListBox.AddString(李四); nItem = m_nameListBox.AddString(王五); return TRUE; 第1章 概述 控件使用控件使用 (4)在OnTest函數(shù)中,添加代碼: int nSel = m_nameListBox.GetCurSel(); if(-1 !=
15、 nSel) CString strName ; m_nameListBox.GetText(nSel,strName); CString strMess2 ; strMess2.Format(我知道您叫%s.,strName); strMess = strMess2+strMess; MessageBox(strMess);第1章 概述 控件使用控件使用7組合框 例 組合框 (1)編輯對(duì)話框,添加一個(gè)Combo Box控件和一個(gè)“國(guó)籍”靜態(tài)控件 (2)在組合框的Data屬性中增加數(shù)據(jù),可以按Ctrl + Enter鍵使數(shù)據(jù)分行排列 (3)在OnTest函數(shù)中,添加代碼 / CString s
16、trMess3; GetDlgItem(IDC_COMBO1)-GetWindowText(strMess3); strMess3 = 國(guó)籍 +strMess3 ; strMess += strMess3; MessageBox(strMess,消息,MB_OK); 8其它控件第1章 概述 ActiveX控件控件Windows Media Player控件例 多媒體播放器 使用多媒體播放器控件,制作多媒體播放器步驟: 1.插入一個(gè)ActiveX框架Windows Media Player,然后再添加CWMPPlayer4類 2.建立一個(gè)控件類關(guān)聯(lián)變量m_cPlayer; 3.在按鈕響應(yīng)函數(shù)中添
17、加代碼: char BASED_CODE szFilter = Play Files(* .mpg)| * .mpg| Play Files(* .avi)| * .avi| All Files (* .)| * .* |; CFileDialog fDlg(TRUE,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL); if(fDlg.DoModal() = IDOK) CString path = fDlg.GetPathName();/獲取播放文件的全路徑 m_cPlayer.SetUrl(path);/在添加播放文件 第1章 概述
18、 ActiveX控件控件 注: 1)對(duì)CWMPPlayer2 類播放器,代碼應(yīng)修改,如: CFileDialog opendlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL); if(opendlg.DoModal()=IDOK) m_cPlayer.SetFileName(opendlg.GetFileName(); m_cPlayer.Open(opendlg.GetFileName(); m_cPlayer.Play(); 第1章 概述 ActiveX控件控件 2)如果沒(méi)有將控件的屬性設(shè)置為自動(dòng)播放的話,需要利用
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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āo)售合同范本
- 轉(zhuǎn)賣(mài)音響合同范本
- 勞務(wù)外包合同范例
- 中介委托租房電子合同范本
- 凱倫股合同范本
- 養(yǎng)牛合伙合同范本
- 北海吊車(chē)出租合同范本
- 公司中途入股合同范本
- 產(chǎn)品服務(wù)合同范例
- 農(nóng)村轉(zhuǎn)讓土地合同范本
- 2025年國(guó)家自然科學(xué)基金委員會(huì)招聘流動(dòng)編制人員59人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 寧波2025年浙江寧波市鄞州區(qū)衛(wèi)健系統(tǒng)其他事業(yè)單位招聘事業(yè)編制46人筆試歷年參考題庫(kù)附帶答案詳解
- 2025江蘇太倉(cāng)市城市建設(shè)投資集團(tuán)限公司招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)口算題
- 2025年個(gè)體戶合伙投資協(xié)議(三篇)
- 2024-2025學(xué)年第二學(xué)期(2025春季學(xué)期)學(xué)校工作計(jì)劃(附2月-6月安排表)
- 14磁極與方向(教學(xué)設(shè)計(jì))-二年級(jí)科學(xué)下冊(cè)(教科版)
- 2025年山西經(jīng)貿(mào)職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 小學(xué)教師讀書(shū)分享活動(dòng)課件
- 2024年義務(wù)教育2022年版《道德與法治課程標(biāo)準(zhǔn)》真題庫(kù)附答案
- 職業(yè)素養(yǎng)提升第2版(大學(xué)生職業(yè)素養(yǎng)指導(dǎo)課程)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論