




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
會(huì)計(jì)學(xué)1ClassWizard類向?qū)У氖褂脤?shí)用MFC管理類的方式point.hclassCPoint{private:intX;intY;public:CPoint(intx=0,inty=0);voidShow();
};#include“point.h”CPoint::CPoint(intx=0,inty=0){X=x;Y=y;}voidCPoint::Show(){cout<<“(”<<X<<“,”<<Y<<“)”;}point.cppvoidf();voidCPoint::f(){//添加代碼}第1頁/共31頁二、ClassWizard的啟動(dòng)只有在打開或創(chuàng)建了一個(gè)項(xiàng)目后,在View主菜單中才會(huì)出現(xiàn)ClassWizard類向?qū)Р藛雾?xiàng)。
啟動(dòng)ClassWizard有兩種方式:
1、通過菜單命令,如上圖;
2、通過快捷鍵Ctrl+W。第2頁/共31頁處理消息映射,為消息添加或刪除處理函數(shù)為對(duì)話框控件添加或刪除成員變量管理OLE自動(dòng)化類的屬性和方法管理ActiveX類所支持的ActiveX類事件顯示當(dāng)前應(yīng)用程序中所包含的所有類的信息第3頁/共31頁消息映射第4頁/共31頁消息發(fā)送和消息處理的一般過程為:消息發(fā)送——消息映射——消息處理。第5頁/共31頁鼠標(biāo)事件和鼠標(biāo)消息客戶區(qū)鼠標(biāo)消息涵義WM_MOUSEMOVE鼠標(biāo)移動(dòng)WM_LBUTTONUP鼠標(biāo)左鍵釋放WM_LBUTTONDBCLK鼠標(biāo)左鍵雙擊WM_LBUTTONDOWN鼠標(biāo)左鍵按下WM_RBUTTONUP鼠標(biāo)右鍵釋放WM_RBUTTONDBCLK鼠標(biāo)右鍵雙擊WM_RBUTTONDOWN鼠標(biāo)右鍵按下WM_MBUTTONUP鼠標(biāo)中鍵釋放WM_MBUTTONDBCLK鼠標(biāo)中鍵雙擊WM_MBUTTONDOWN鼠標(biāo)中鍵按下●客戶區(qū)鼠標(biāo)消息第6頁/共31頁●鼠標(biāo)事件的處理MFC把鼠標(biāo)消息處理函數(shù)封裝在CView類中。對(duì)于客戶區(qū)鼠標(biāo)消息對(duì)應(yīng)的消息處理函數(shù)如下:afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDbClk(UINTnFlags,CPointpoint);afx_msgvoidOnMButtonDown(UINTnFlags,CPointpoint);第7頁/共31頁參數(shù)nFlags用來描述鼠標(biāo)按鈕和鍵盤上Shift鍵和Ctrl鍵的組合狀態(tài)。其取值如下表:nFlags涵義MK_CONTROLCtrl鍵按下MK_LBUTTON鼠標(biāo)左鍵按下,同WM_LBUTTONDOWNMK_MBUTTON鼠標(biāo)中鍵按下,同WM_MBUTTONDOWNMK_RBUTTON鼠標(biāo)右鍵按下,同WM_RBUTTONDOWNMK_SHIFTShift鍵按下如:if(nFlags&MK_CONTROL) MessageBox("Ctrl鍵按下"); elseMessageBox("Ctrl鍵沒有按下");第8頁/共31頁【例1】在視圖窗口單擊鼠標(biāo)左鍵彈出一個(gè)“Hello,theworld!”消息框。第9頁/共31頁在頭文件EXAMPLE1View.h中聲明消息處理函數(shù)OnLButtonDown:protected: //{{AFX_MSG(CEXAMPLE1View) afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint); //}}AFX_MSG DECLARE_MESSAGE_MAP()第10頁/共31頁在實(shí)現(xiàn)文件EXAMPLE1View.cpp消息映射入口處,添加了相應(yīng)的映射宏:BEGIN_MESSAGE_MAP(CEXAMPLE1View,CView) //{{AFX_MSG_MAP(CEXAMPLE1View)
ON_WM_LBUTTONDOWN(
) //}}AFX_MSG_MAP //Standardprintingcommands ……END_MESSAGE_MAP()第11頁/共31頁在實(shí)現(xiàn)文件EXAMPLE1View.cpp中寫入一個(gè)控的消息處理函數(shù)的框架,以便開發(fā)人員填入具體的程序代碼:voidCEXAMPLE1View::OnLButtonDown(UINTnFlags,CPointpoint){ //TODO:Addyourmessagehandlercodehereand/orcalldefault CView::OnLButtonDown(nFlags,point);}第12頁/共31頁【EXAMPLE2】在視圖窗口跟蹤鼠標(biāo)的當(dāng)前位置,并且在視圖的客戶區(qū)顯示鼠標(biāo)的坐標(biāo)值。第13頁/共31頁2.窗口事件和窗口消息第14頁/共31頁【EXAMPLE3】給一個(gè)窗口程序添加關(guān)閉和打開時(shí)的消息,使之能在打開和關(guān)閉時(shí)有小消息框提示。第15頁/共31頁【例4】在視圖窗口單擊鼠標(biāo)左鍵或右鍵分別彈出不同的消息框,顯示單擊鼠標(biāo)左鍵或右鍵的次數(shù)。第16頁/共31頁【例5】在視圖窗口單擊鼠標(biāo)左鍵彈出一個(gè)對(duì)話框,對(duì)話框。第17頁/共31頁關(guān)聯(lián)對(duì)話框控件的成員變量第18頁/共31頁三、案例演示第19頁/共31頁案例分析及設(shè)計(jì)步驟:1、利用MFC應(yīng)用程序向?qū)蓡挝臋n(SingleDocument)應(yīng)用程序框架。第20頁/共31頁2、利用資源編輯器添加資源:在本案例中是一個(gè)對(duì)話框(鼠標(biāo)單擊左鍵后彈出這個(gè)對(duì)話框),在對(duì)話框上要添加四個(gè)按鈕(Button)和一個(gè)編輯框(Edit)。(1)選中“ResourceView”選項(xiàng)卡(2)在“Dialog”文件夾上單擊鼠標(biāo)右鍵,彈出快捷菜單,選擇“InsertDialog”菜單命令。第21頁/共31頁(3)拖入控件,設(shè)計(jì)對(duì)話框??丶﨏ontrolA(編輯框)控件ControlB(消息框)變量Variable第22頁/共31頁控件與關(guān)聯(lián)變量之間的數(shù)據(jù)內(nèi)容傳遞,UpdateData()函數(shù)。其原型如下:BOOLUpdateData(BOOLb=TRUE);
當(dāng)b賦值為TRUE時(shí),將控件的內(nèi)容傳送給對(duì)應(yīng)的成員變量,當(dāng)b賦值為FALSE時(shí),將成員變量的值傳送給控件并更新控件的顯示??丶﨏ontrol變量VariableUpdateData(false);UpdateData(true);第23頁/共31頁3、通過ClassWizard類向?qū)?chuàng)建新類,添加關(guān)聯(lián)對(duì)話框控件的成員變量。第24頁/共31頁4、打開TestView.cpp文件,在CTestView::OnDraw(CDC*pDC)函數(shù)中添加代碼,如下(紅色代碼為添加代碼):voidCTestView::OnDraw(CDC*pDC){ CTestDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere
pDC->TextOut(10,10,"單擊鼠標(biāo)左鍵激活彈出對(duì)話框!");}//TODO:其作用是為了方便用戶,讓用戶知道他能/可以作什么操作。第25頁/共31頁5、通過ClassWizard類向?qū)нM(jìn)行消息映射,主要包括:在視圖窗口左鍵單擊(WM_LBUTTONDOWN)、在對(duì)話框上單擊四個(gè)按鈕(BN_CLICKED)。第26頁/共31頁6、編寫具體的函數(shù)代碼。voidCTestView::OnLButtonDown(UINTnFlags,CPointpoint)//鼠標(biāo)左鍵的函數(shù){ //TODO:Addyourmessagehandlercodehereand/orcalldefault
CShowDlgshowdlg; showdlg.DoModal(); CView::OnLButtonDown(nFlags,point);}voidCShowDlg::OnDefaultbtn()//的函數(shù){//TODO:Addyourcontrolnotificationhandlercodehere
m_Text="武漢科技大學(xué)中南分校信息工程學(xué)院"; UpdateData(false);}第27頁/共31頁voidCShowDlg::OnMessageboxbtn()//的函數(shù){ //TODO:Addyourcontrolnotificationhandlercodehere
UpdateData(true); MessageBox(m_Text,"信息框",MB_OK);}voidCShowDlg::OnClearbtn()//的函數(shù){ //TODO:Addyourcontrolnotificationhandlercodehere
m_Text
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 客運(yùn)火車站旅客服務(wù)規(guī)范考核試卷
- 供應(yīng)鏈協(xié)同案例解析考核試卷
- 低溫倉儲(chǔ)庫存管理與控制考核試卷
- 家用縫紉機(jī)維修實(shí)操考核試卷
- 土地利用規(guī)劃中的社區(qū)開放空間設(shè)計(jì)考核試卷
- 創(chuàng)業(yè)投資風(fēng)險(xiǎn)防范體系建設(shè)與實(shí)施路徑考核試卷
- 政府融資合同范本模板
- 自用高爾夫轉(zhuǎn)讓合同范本
- 工地叉車租憑合同范本
- 電氣質(zhì)量安全培訓(xùn)課件
- 2022年1月福建省合格性考試生物真題卷
- 2023 年上海市信息技術(shù)合格考 模擬卷 2(含答案解析)
- 2024年組工業(yè)務(wù)大比武知識(shí)考試試卷(附標(biāo)準(zhǔn)答案)
- 2024農(nóng)村宅基地轉(zhuǎn)讓合同范本
- 公務(wù)員考試言語理解高頻詞匯
- 各類學(xué)校校園安全應(yīng)急預(yù)案匯編-(附應(yīng)急全套流程圖)
- 《積極心理學(xué)(第3版)》 課件 第3章 積極情緒的價(jià)值
- 胃管非計(jì)劃拔管原因分析
- 斯坦福大學(xué)人生設(shè)計(jì)課 (美比爾·博內(nèi)特 戴夫·伊萬斯)
- 信息技術(shù)必修一《數(shù)據(jù)與計(jì)算》三章第二節(jié)《數(shù)據(jù)分析與可視化》教案
- 微信欠條合同范本
評(píng)論
0/150
提交評(píng)論