資源描述:
《MFC入門--對(duì)話框?qū)嵗?doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、MFC入門——對(duì)話框?qū)嵗龑?shí)例1目的:設(shè)計(jì)一個(gè)基于對(duì)話框的程序,界面上有一個(gè)“延遲6秒”的按鈕,點(diǎn)擊后,程序主窗口在6秒內(nèi)無法拖動(dòng).關(guān)鍵點(diǎn):MFC程序入門、線程與進(jìn)程、消息機(jī)制操作過程:1-新建項(xiàng)目,選擇MFCAppWizard?。╡xe),命名項(xiàng)目為“SingleThread”。如圖:(注:關(guān)于各項(xiàng)目類型的說明,請(qǐng)參見文件“VC功能簡(jiǎn)介.ppt”的第8頁(yè))2-選擇“Dialogbased”,點(diǎn)擊Finish,仔細(xì)觀察項(xiàng)目信息。3-在資源視圖內(nèi)對(duì)主對(duì)話框添加靜態(tài)文本:“我的第一個(gè)MFC程序”和“演示耗時(shí)的單線程”,繼而添加一個(gè)按鈕,按鈕現(xiàn)實(shí)文字
2、“延遲6秒”,如圖:4—在資源視圖內(nèi),雙擊“延時(shí)6秒”按鈕,為其添加BN_CLICKED消息(按下按鈕時(shí)發(fā)出的消息)的響應(yīng)函數(shù)OnButton1()。在其中添加代碼:?Slee(cuò)p(6000); 請(qǐng)根據(jù)老師對(duì)程序的講解,思考如下問題:1.類的繼承:三個(gè)的類(CAboutDlg、CSingleThreadApp、CStringThreadDlg)的繼承軌跡是怎樣的?2.程序的入口在哪里?有沒有類似Win32Application中對(duì)于WM_CREATE的處理?3.三個(gè)類的對(duì)象的關(guān)系.4.消息如何映射?實(shí)例2設(shè)計(jì)一個(gè)基于對(duì)話框的程序,開始運(yùn)行后,每
3、兩秒彈出一個(gè)消息框.關(guān)鍵點(diǎn):MFC程序入門;定時(shí)器的建立、使用與刪除;消息映射操作過程:1-新建項(xiàng)目,選擇MFCAppWizard(exe),命名項(xiàng)目為“Test”。2-選擇“Dialogbased”。3-在BOOLCTestDlg::OnInitDialog()函數(shù)中添加SetTimer(1,2000,NULL); //啟動(dòng)定時(shí)器4-通過ClassWizard給對(duì)話框添加WM_DESTROY的響應(yīng)函數(shù)。如圖:在其中添加代碼:?KillTimer(1);5-通過ClassWizard給對(duì)話框添加WM_TIMER的響應(yīng)函數(shù)。在其中添加代碼:if
4、(nI(lǐng)DEvent==1){::MessageBox(0,”嘿嘿",”你點(diǎn)??!!",MB_OK);}請(qǐng)根據(jù)老師對(duì)程序的講解,思考如下問題:1.MFC下與Win32Application下定時(shí)器的使用有什么不同,又有什么相同之處?實(shí)例3設(shè)計(jì)一個(gè)基于對(duì)話框的程序,通過點(diǎn)擊Button,將數(shù)據(jù)反映到編輯控件上。關(guān)鍵點(diǎn):如何將后臺(tái)數(shù)據(jù)反映到界面上。操作過程:1—新建項(xiàng)目,選擇MFCAppWizard(exe),命名項(xiàng)目為“Test”。2-選擇“Dialogbased"。3-在對(duì)話框上添加編輯框和按鈕.4-選擇菜單中ViewàClassWizard,查
5、看Member Variables。為編輯框添加控件變量。5-雙擊“Button"按鈕,添加消息相應(yīng)代碼如下:?m_Edit1.SetWindowText(”你干嘛戳我?。?!”);請(qǐng)根據(jù)老師對(duì)程序的講解,思考如下問題:1.對(duì)象m_Edit1的類是什么?其又從何處繼承而來?2.SetWindowText是怎樣的一個(gè)函數(shù),如何發(fā)現(xiàn)其為公有還是私有?實(shí)例4設(shè)計(jì)一個(gè)具有編輯框和“Next”按鈕的對(duì)話框程序,用戶可在編輯框中輸入任何文本。點(diǎn)擊“Next"按鈕后,彈出一個(gè)新的對(duì)話框,新對(duì)話框上可顯示用戶在編輯框中輸入的文本.關(guān)鍵點(diǎn):如何在項(xiàng)目中添加新的類
6、;如何利用Updat(yī)eData()函數(shù)來溝通界面與后臺(tái)數(shù)據(jù)。操作過程:1.創(chuàng)建基于對(duì)話框的工程文件和新對(duì)話框資源用ApplicationWizard創(chuàng)建一個(gè)對(duì)話框工程文件MyDlg,然后添加對(duì)話框資源。新對(duì)話框命名為CNext類。2.在主對(duì)話框上添加編輯框和“Next”按鈕。通過ClassWizard給編輯框添加變量,變量類型是CString,變量名為m_text。在CNext對(duì)話框上添加一編輯框.通過ClassWizard給該編輯框添加變量,變量類型是CString,變量名為m_text2.3.在主對(duì)話框cpp程序中添加CNext類的頭文件
7、。4。通過ClassWizard給“Next”按鈕添加單擊消息的響應(yīng)函數(shù)。在其中添加代碼:?UpdateData(TRUE);//MFC將數(shù)據(jù)從控件傳遞到關(guān)聯(lián)的成員變量?CNextdlg;dlg.m_text2=m_text;?dlg。DoModal();//DoModal()建立對(duì)話框窗口并顯示對(duì)話框?UpdateData(FALSE);//MFC將數(shù)據(jù)從成員變量傳遞到關(guān)聯(lián)的控件請(qǐng)根據(jù)老師對(duì)程序的講解,思考如下問題:1.課程中,討論過幾種MFC下實(shí)現(xiàn)“邏輯/界面”聯(lián)系的方式?(可以以編輯框?yàn)槔?.你是否學(xué)過VB、Java或者C#,在這些語(yǔ)
8、言下,又是如何實(shí)現(xiàn)建立“邏輯/界面”之間的聯(lián)系的?