對(duì)話框編程上機(jī)實(shí)驗(yàn)_第1頁
對(duì)話框編程上機(jī)實(shí)驗(yàn)_第2頁
對(duì)話框編程上機(jī)實(shí)驗(yàn)_第3頁
對(duì)話框編程上機(jī)實(shí)驗(yàn)_第4頁
對(duì)話框編程上機(jī)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Visual C+游戲程序設(shè)計(jì) 菜單編程一、上機(jī)目的:(1)掌握7種方法對(duì)編輯框進(jìn)行操作。(2)掌握對(duì)話框伸縮功能的實(shí)現(xiàn)。(3)掌握用MSDN查找相關(guān)API函數(shù)。二、上機(jī)內(nèi)容:以下題目都在VC+6.0環(huán)境下編程完成。1、新建一個(gè)MFC的單文檔工程Mybole,并增加一個(gè)菜單選項(xiàng)“對(duì)話框”。插入一個(gè)對(duì)話框資源對(duì)應(yīng)的對(duì)話框名稱是:IDD_DIALOG1。在MFC中,對(duì)資源的操作通常都是通過一個(gè)與資源相關(guān)的類來完成的。在新建對(duì)話框資源上雙擊,彈出對(duì)話框,選擇“Create a new class”選項(xiàng)。這時(shí)在Mybole程序的Class View選項(xiàng)卡中,可以看到新類,這個(gè)CTestDlg新類有兩個(gè)

2、成員函數(shù),其中一個(gè)就是它的構(gòu)造函數(shù),定義代碼如下:CTestDlg:CTestDlg(CWnd* pParent /*=NULL*/): CDialog(CTestDlg:IDD, pParent)/AFX_DATA_INIT(CTestDlg)/AFX_DATA_INITCTestDlg類的構(gòu)造函數(shù)首先調(diào)用其基類:CDialog的構(gòu)造函數(shù),并傳遞兩個(gè)參數(shù):一個(gè)是CTestDlg類的IDD成員,一個(gè)是父窗口指針,打開CTestDlg類的頭文件,就可以發(fā)現(xiàn)這個(gè)IDD就是這個(gè)對(duì)話框資源的ID,代碼如下:/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_D

3、IALOG1 ;/AFX_DATACtestDlg類的另一個(gè)函數(shù)是:DoDataExchange,主要用來完成對(duì)話框數(shù)據(jù)的交換和校驗(yàn)。了解API函數(shù):我們創(chuàng)建一個(gè)模態(tài)對(duì)話框:void CMyboleView:OnDialog() / TODO: Add your command handler code here CTestDlg dlg;dlg.DoModal(); /創(chuàng)建模態(tài)對(duì)話框我們?cè)贗DD_DIALOG1上設(shè)計(jì)如下界面:實(shí)現(xiàn)加法運(yùn)算,用7種方法實(shí)現(xiàn):第一種方法:查找MSDN理解GetWindowText函數(shù)、SetWindowText函數(shù)、itoa函數(shù)和atoi函數(shù)。第二種方法:查找G

4、etDlgItemText函數(shù)和SetDlgItemText函數(shù)。寫出代碼實(shí)現(xiàn)之。第三種方法:查找GetDlgItemInt函數(shù)和SetDlgItemInt函數(shù)。寫出代碼實(shí)現(xiàn)之。第四種方法:將三個(gè)編輯框控件和三個(gè)變量相關(guān)聯(lián)。用同樣方法添加m_num1、m_num2和m_num3。這時(shí)候我們觀察這個(gè)類的頭文件和構(gòu)造函數(shù)。/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_DIALOG1 ;intm_num1;intm_num2;intm_num3;/AFX_DATACTestDlg:CTestDlg(CWnd* pParent /*=NULL*/): C

5、Dialog(CTestDlg:IDD, pParent)/AFX_DATA_INIT(CTestDlg)m_num1 = 0;m_num2 = 0;m_num3 = 0;/AFX_DATA_INIT這時(shí)DoDataExchange函數(shù)變?yōu)椋簐oid CTestDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CTestDlg)DDX_Text(pDX, IDC_EDIT1, m_num1);DDX_Text(pDX, IDC_EDIT2, m_num2);DDX_Text(pDX,

6、IDC_EDIT3, m_num3);/AFX_DATA_MAP我們編寫代碼如下:void CTestDlg:OnBtnAdd() UpdateData(true); m_num3=m_num1+m_num2;UpdateData(false);請(qǐng)回答為什么加上UpdateData(true);和UpdateData(false);兩個(gè)語句呢?第五種方法:我們把編輯框控件再與三個(gè)變量相關(guān)聯(lián)。/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_DIALOG1 ;CEditm_edit3;CEditm_edit2;CEditm_edit1;/AFX_DAT

7、A這時(shí)在CTestDlg類的DoDataExchange函數(shù)中增加了三個(gè)DDX_Control函數(shù),分別將一個(gè)對(duì)話框控件與一個(gè)控件變量相關(guān)聯(lián)。代碼如下:接下來大家自己調(diào)用CEdit類的對(duì)象成員函數(shù)GetWindowText函數(shù)和SetWindowText函數(shù)實(shí)現(xiàn)加法運(yùn)算。第6種方法我們可以通過發(fā)送消息WM_GETTEXT消息。查找MSDN理解。對(duì)應(yīng)的代碼如下:第7種方法:采用編輯框控件消息:EM_SETSEL查找MSDN理解:CWnd:SendDlgItemMessageLRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wPar

8、am = 0, LPARAM lParam = 0 );Return ValueSpecifies the value returned by the controls window procedure, or 0 if the control was not found.ParametersnIDSpecifies the identifier of the dialog control that will receive the message.messageSpecifies the message to be sent.wParamSpecifies additional messag

9、e-dependent information. lParamSpecifies additional message-dependent information.RemarksSends a message to a control. 對(duì)應(yīng)實(shí)現(xiàn)的代碼如下:void CTestDlg:OnBtnAdd() / TODO: Add your control notification handler code here int num1,num2,num3;char ch110,ch210,ch310;SendDlgItemMessage (IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);SendDlgItemMessage (IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2); num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2; itoa(num3,ch3,10);SendDlgItemM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論