版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ClassWizard 類向?qū)?一、概述 利用MFC應(yīng)用程序向?qū)蓱?yīng)用程序框架后,需要為 程序添加消息處理成員函數(shù)和對(duì)話框控件的成員變 量,有時(shí)還需要為程序添加新的MFC派生類,那么這些可 以通過ClassWizard類向?qū)韺?shí)現(xiàn)。 MFC ClassWizard類向?qū)Ц鶕?jù)程序開發(fā)人員的要求以 半自動(dòng)化的方式添加程序代碼,也是進(jìn)行MFC應(yīng)用程序設(shè) 計(jì)時(shí)一個(gè)必不可少的交互式工具,MFC管理類的方式,point.h,class CPoint private: int X; int Y; public: CPoint(int x=0,int y=0); void Show( );,include
2、“point.h” CPoint:CPoint(int x=0,int y=0) X=x; Y=y; void CPoint:Show( ) cout“(”X“,”Y“)”;,point.cpp,void f(,void CPoint:f( ) /添加代碼,二、ClassWizard的啟動(dòng) 只有在打開或創(chuàng)建了一個(gè)項(xiàng)目后,在View主菜單中才會(huì)出 現(xiàn)ClassWizard類向?qū)Р藛雾?xiàng),啟動(dòng)ClassWizard有兩種方式: 1、通過菜單命令,如上圖; 2、通過快捷鍵Ctrl + W,處理消息映射,為消息 添加或刪除處理函數(shù),為對(duì)話框控件添加 或刪除成員變量,管理OLE自動(dòng)化類 的屬性和方法,管理
3、ActiveX類所支持的 ActiveX類事件,顯示當(dāng)前應(yīng)用程序中 所包含的所有類的信息,消息映射,消息發(fā)送和消息處理的一般過程為: 消息發(fā)送消息映射消息處理,鼠標(biāo)事件和鼠標(biāo)消息,客戶區(qū)鼠標(biāo)消息,鼠標(biāo)事件的處理 MFC把鼠標(biāo)消息處理函數(shù)封裝在CView類中,對(duì)于客戶區(qū)鼠標(biāo)消息對(duì)應(yīng)的消息處理函數(shù)如下: afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnLButtonDbClk(UINT nFlags, CP
4、oint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); afx_msg void OnRButtonDbClk(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnMButtonUp(UINT nFlags, CPoint point); afx_msg void On
5、MButtonDbClk(UINT nFlags, CPoint point); afx_msg void OnMButtonDown(UINT nFlags, CPoint point,參數(shù)nFlags用來描述鼠標(biāo)按鈕和鍵盤上Shift鍵和Ctrl鍵的組合狀態(tài)。其取值如下表,如: if (nFlags,例1】在視圖窗口單擊鼠標(biāo)左鍵彈出一個(gè)“Hello, the world!”消息框,在頭文件EXAMPLE1View.h中聲明消息處理函數(shù)OnLButtonDown: protected: /AFX_MSG(CEXAMPLE1View) afx_msg void OnLButtonDown(UI
6、NT nFlags, CPoint point); /AFX_MSG DECLARE_MESSAGE_MAP(,在實(shí)現(xiàn)文件EXAMPLE1View.cpp消息映射入口處,添加了相應(yīng)的映射宏: BEGIN_MESSAGE_MAP(CEXAMPLE1View, CView) /AFX_MSG_MAP(CEXAMPLE1View) ON_WM_LBUTTONDOWN( ) /AFX_MSG_MAP / Standard printing commands END_MESSAGE_MAP(,在實(shí)現(xiàn)文件EXAMPLE1View.cpp中寫入一個(gè)控的消息處理函數(shù)的框架,以便開發(fā)人員填入具體的程序代碼: v
7、oid CEXAMPLE1View:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default CView:OnLButtonDown(nFlags, point);,EXAMPLE 2】在視圖窗口跟蹤鼠標(biāo)的當(dāng)前位置,并且在視圖的客戶區(qū)顯示鼠標(biāo)的坐標(biāo)值,2. 窗口事件和窗口消息,EXAMPLE 3 】給一個(gè)窗口程序添加關(guān)閉和打開時(shí)的消息,使之能在打開和關(guān)閉時(shí)有小消息框提示,例4】在視圖窗口單擊鼠標(biāo)左鍵或右鍵分別彈出不同的消息框,顯示單擊鼠標(biāo)左鍵或右
8、鍵的次數(shù),例5】在視圖窗口單擊鼠標(biāo)左鍵彈出一個(gè)對(duì)話框,對(duì)話框,關(guān)聯(lián)對(duì)話框控件的成員變量,三、案例演示,案例分析及設(shè)計(jì)步驟: 1、利用MFC應(yīng)用程序向?qū)蓡挝臋n(Single Document)應(yīng)用程序框架,2、利用資源編輯器添加資源:在本案例中是一個(gè)對(duì)話框(鼠標(biāo)單擊左鍵后彈出這個(gè)對(duì)話框),在對(duì)話框上要添加四個(gè)按鈕(Button)和一個(gè)編輯框(Edit,1)選中“Resource View”選項(xiàng)卡,2)在“Dialog”文件夾上單擊鼠標(biāo)右鍵,彈出快捷菜單, 選擇“Insert Dialog”菜單命令,3)拖入控件,設(shè)計(jì)對(duì)話框,控件 Control A (編輯框,控件Control B (消息框
9、,變量Variable,控件與關(guān)聯(lián)變量之間的數(shù)據(jù)內(nèi)容傳遞,UpdateData( )函數(shù)。 其原型如下: BOOL UpdateData ( BOOL b =TRUE ); 當(dāng) b 賦值為TRUE時(shí),將控件的內(nèi)容傳送給對(duì)應(yīng)的成員變量,當(dāng) b 賦值為FALSE時(shí),將成員變量的值傳送給控件并更新控件的顯示,控件Control,變量Variable,UpdateData(false,UpdateData(true,3、通過ClassWizard類向?qū)?chuàng)建新類,添加關(guān)聯(lián)對(duì)話框控件的成員變量,4、打開TestView.cpp文件,在CTestView:OnDraw(CDC* pDC)函數(shù)中添加代碼,如下
10、(紅色代碼為添加代碼): void CTestView:OnDraw(CDC* pDC) CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here pDC-TextOut(10,10,單擊鼠標(biāo)左鍵激活彈出對(duì)話框!);,TODO:其作用是為了方便用戶,讓用戶知道他 能/可以 作什么操作,5、通過ClassWizard類向?qū)нM(jìn)行消息映射,主要包括:在視圖窗口左鍵單擊(WM_LBUTTONDOWN)、在對(duì)話框上單擊四個(gè)按鈕(BN_CLICKED,6、編寫具體的函數(shù)代碼,
11、void CTestView:OnLButtonDown(UINT nFlags, CPoint point) /鼠標(biāo)左鍵的函數(shù) / TODO: Add your message handler code here and/or call default CShowDlg showdlg; showdlg. DoModal( ); CView:OnLButtonDown(nFlags, point);,void CShowDlg:OnDefaultbtn( ) / 的函數(shù) / TODO: Add your control notification handler code here m_Text=武漢科技大學(xué)中南分校信息工程學(xué)院; UpdateData(false);,void CShowDlg:OnMessageboxbtn( ) / 的函數(shù) / TODO: Add your control notification handler code here UpdateData(true); MessageBox(m_Text,信息框,MB_OK);,void CShowDlg:OnClearbtn( ) / 的函數(shù) / TODO: Add your control notification handler code he
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 活動(dòng)腳手架搭設(shè)方案
- 2024年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 二零二五年度智能汽車典當(dāng)借款管理協(xié)議3篇
- 2020中考英語復(fù)習(xí)方案第一篇教材考點(diǎn)梳理第20課時(shí)Units4九上課件牛津譯林版
- 義務(wù)教育課程標(biāo)準(zhǔn)道德與法治
- 2024年瀘州醫(yī)療器械職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 二零二五年度綠色農(nóng)產(chǎn)品倉儲(chǔ)與銷售合作合同3篇
- 2024年阜新市婦幼保健院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(頻考版)含答案解析
- 《數(shù)控落地銑鏜床 第1部分:精度檢驗(yàn)》
- 醫(yī)療安全(不良)事件總結(jié)分析會(huì)議記錄
- 建筑用砂采石場(chǎng)安全生產(chǎn)綜合應(yīng)急預(yù)案
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)、預(yù)防措施、追責(zé)建議
- 常用護(hù)理技能操作流程
- 小批量試制總結(jié)報(bào)告
- 墨魚干最好的泡發(fā)方法
- 生豬領(lǐng)域:牧原食品企業(yè)組織結(jié)構(gòu)及部門職責(zé)
- 人生目標(biāo)規(guī)劃PPT模板課件
- 老年人健康和慢性病管理課件
- 消防設(shè)施操作員報(bào)名承諾書
評(píng)論
0/150
提交評(píng)論