ClassWizard類向?qū)У氖褂?ppt_第1頁
ClassWizard類向?qū)У氖褂?ppt_第2頁
ClassWizard類向?qū)У氖褂?ppt_第3頁
ClassWizard類向?qū)У氖褂?ppt_第4頁
ClassWizard類向?qū)У氖褂?ppt_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論