對(duì)話框和控件編程

對(duì)話框和控件編程

ID:41033430

大小:2.04 MB

頁(yè)數(shù):5頁(yè)

時(shí)間:2019-08-14

對(duì)話框和控件編程_第1頁(yè)
對(duì)話框和控件編程_第2頁(yè)
對(duì)話框和控件編程_第3頁(yè)
對(duì)話框和控件編程_第4頁(yè)
對(duì)話框和控件編程_第5頁(yè)
資源描述:

《對(duì)話框和控件編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、對(duì)話框與控件編程一、對(duì)話框編程l創(chuàng)建一個(gè)基于單文檔視圖框架的應(yīng)用程序。l執(zhí)行菜單命令:視圖/資源視圖,進(jìn)入資源視圖窗口,點(diǎn)擊Dialog資源項(xiàng),右鍵添加一個(gè)對(duì)話框資源。l在對(duì)話框資源窗口上右鍵,添加對(duì)話框類。l在主菜單資源的視圖菜單中添加新菜單項(xiàng),用于顯示對(duì)話框。將新添加的菜單項(xiàng)的消息處理函數(shù)映射到View類中。一、添加對(duì)話框類l在新加的菜單消息處理函數(shù)中添加代碼lCDlgExam1dlg;dlg.DoModal();通過(guò)調(diào)用Cdialog類的DoModal()函數(shù)顯示的對(duì)話框都是模態(tài)對(duì)話框?!澳B(tài)對(duì)話框”指對(duì)話框被彈出后,用

2、戶必須在對(duì)話框中作出相應(yīng)的操作,在退出對(duì)話框之前,對(duì)話框所在應(yīng)用程序的其他操作不能繼續(xù)執(zhí)行?!胺悄B(tài)對(duì)話框”指對(duì)話框被彈出后,一直保留在屏幕上,用戶可繼續(xù)在對(duì)話框所在應(yīng)用程序中執(zhí)行其他操作。當(dāng)需要使用對(duì)話框時(shí),只需像激活窗口一樣單擊對(duì)話框所在區(qū)域即可。非模態(tài)對(duì)話框的編寫和使用1.添加一個(gè)新的對(duì)話框資源2.添加一個(gè)新的對(duì)話框類CDlgNonModal3.為對(duì)話框添加一個(gè)靜態(tài)整型變量NumOfInstance,初始化為0;3.重載對(duì)話框類的OnCancel和PostNcDestroy函數(shù)voidCDlgNonModal::OnCa

3、ncel(){DestroyWindow();CDlgNonModal::NumOfInstance=0;}voidCDlgNonModal::PostNcDestroy(){CDialog::PostNcDestroy();deletethis;}intCDlgNonModal::NumOfInstance=0;CDlgNonModal::CDlgNonModal(CWnd*pParent/*=NULL*/):CDialog(CDlgNonModal::IDD,pParent){CDlgNonModal::NumOfInst

4、ance++;}4.在View類中添加菜單命令處理函數(shù)if(CDlgNonModal::NumOfInstance==0){CDlgNonModal*pDlg=newCDlgNonModal(0);pDlg->Create(IDD_DIALOG1);pDlg->ShowWindow(SW_SHOW);}思考:如果需要在對(duì)話框類的成員函數(shù)中調(diào)用View類的成員函數(shù)?應(yīng)該如何設(shè)計(jì)對(duì)話框類?在對(duì)話框類的成員函數(shù)中如何獲取應(yīng)用程序的View類實(shí)例的指針?只要為新創(chuàng)建的對(duì)話框類的構(gòu)造函數(shù)添加一個(gè)View類的指針,在創(chuàng)建對(duì)話框類時(shí),傳入V

5、iew的指針即可。二、按鈕控件l1、單選按鈕l添加groupbox控件l將單選按鈕控件放在groupbox控件中l(wèi)將每個(gè)groupbox控件中的第一個(gè)單選按鈕的Group屬性值設(shè)為true,保證不同groupbox控件中的單選按鈕互不影響初始化單選按鈕的選擇狀態(tài)重載對(duì)話框的OnInitDialog()函數(shù),使用對(duì)話框成員函數(shù)CheckRadioButton(…)初始化一個(gè)groupbox中的單選按鈕選擇狀態(tài)。voidCheckRadioButton(intnIDFirstButton,intnIDLastButton,intn

6、IDCheckButton)獲取一個(gè)groupbox中的單選按鈕選擇值:使用對(duì)話框的GetCheckedRadioButton(…)成員函數(shù)獲取選中的單選按鈕的ID號(hào),使用對(duì)話框的GetDlgItemTextW(…)獲取單選按鈕的文本。intGetCheckedRadioButton(intnIDFirstButton,intnIDLastButton);長(zhǎng)春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院陳純毅CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);void

7、CDlgExam1::OnBnClickedButOk(){intnID=GetCheckedRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE);CStringstrAge,strSex;GetDlgItemTextW(nID,strSex);CDialog::OnOK();MessageBox(CString(L"你的選擇是:")+strSex);}2、復(fù)選框按鈕一個(gè)groupbox中的復(fù)選框按鈕的初始化使用對(duì)話框類的GetDlgItem(…)獲得復(fù)選框按鈕對(duì)象的指針,將該指針轉(zhuǎn)換成Cb

8、utton類型指針,使用Cbutton的SetCheck成員函數(shù)設(shè)置復(fù)選框按鈕。獲取一個(gè)groupbox中被勾選的復(fù)選框按鈕的文本將所有復(fù)選框按鈕的ID號(hào)存在一個(gè)數(shù)組中。通過(guò)循環(huán),使用GetDlgItem(…)獲得每個(gè)復(fù)選框按鈕對(duì)象的指針,并轉(zhuǎn)換成Cbutton指針,通過(guò)CB

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。