實(shí)驗(yàn)九基于文檔視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)_第1頁
實(shí)驗(yàn)九基于文檔視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)_第2頁
實(shí)驗(yàn)九基于文檔視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)_第3頁
實(shí)驗(yàn)九基于文檔視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)_第4頁
實(shí)驗(yàn)九基于文檔視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)九 基于文檔/視圖結(jié)構(gòu)的MFC簡(jiǎn)單應(yīng)用程序框架設(shè)計(jì)(4學(xué)時(shí))實(shí)驗(yàn)?zāi)康?. 基本掌握Windows環(huán)境下MFC程序的開發(fā)流程和方法;2. 基本掌握MFC中的文檔/視圖框架體系的簡(jiǎn)單編程方法; 實(shí)驗(yàn)內(nèi)容與步驟創(chuàng)建一個(gè)單文檔的MFC工程,在其中實(shí)現(xiàn)簡(jiǎn)單的“涂鴉”操作。界面如圖9-1所示,實(shí)現(xiàn)如下功能:圖9-1、程序運(yùn)行界面圖(1 用戶在視圖窗口中按下鼠標(biāo)左鍵,并拖動(dòng)鼠標(biāo)時(shí),在窗口中即可進(jìn)行“涂鴉”操作,用戶釋放鼠標(biāo)鍵時(shí),繪圖結(jié)束。(2 在文檔類中設(shè)計(jì)一個(gè)數(shù)組,以保存視圖窗口所繪制的線條坐標(biāo)。使當(dāng)窗口重繪時(shí),能夠重現(xiàn)已繪圖形。MFC編程要點(diǎn)1. 視圖類對(duì)象代表了應(yīng)用程序的窗口客戶區(qū),是文檔等信息的

2、一個(gè)顯示窗口,亦為用戶與程序間進(jìn)行數(shù)據(jù)交互的橋梁。2. 本實(shí)驗(yàn)中,一旦鼠標(biāo)在窗口客戶區(qū)內(nèi)有所動(dòng)作,則MFC將有關(guān)消息傳遞給視圖類對(duì)象進(jìn)行處理。VC編程實(shí)現(xiàn)1、 使用AppWizard創(chuàng)建一個(gè)單文檔的MFC工程test9(在對(duì)話框“MFC AppWizard-Step 1”中選中“Single document”,各項(xiàng)設(shè)置均取默認(rèn)值);2、 在視圖類的頭文件test9View.h中聲明有關(guān)的成員變量:protected:bool m_bDraw; /繪圖標(biāo)識(shí)HCURSOR m_Hcursor; /光標(biāo)對(duì)象CPoint m_pOld; /記錄鼠標(biāo)位置在視圖類CTest9View的構(gòu)造函數(shù)中對(duì)上述成

3、員變量進(jìn)行初始化:CTest9View:CTest9View(/ TODO: add construction code herem_bDraw=FALSE;/載入“十字”光標(biāo)m_Hcursor=AfxGetApp(->LoadStandardCursor(IDC_CROSS; 注:紅色內(nèi)容為VC自動(dòng)生成的代碼(下同)。3、 點(diǎn)擊菜單項(xiàng)View->ClassWizard,使用ClassWizard為視圖類CTest9View添加消息WM_LBUTTONDOWN,定義消息響應(yīng)函數(shù),實(shí)現(xiàn)按下鼠標(biāo)左鍵的相關(guān)繪圖操作。ClassWizard操作如圖9-2所示。有關(guān)代碼為:圖9-2、使用Cl

4、assWizard為CTest9View添加消息WM_LBUTTONDOWNvoid CTest9View:OnLButtonDown(UINT nFlags, CPoint point / TODO: Add your message handler code here and/or call defaultSetCursor(m_Hcursor; /使用新光標(biāo)m_bDraw=TRUE; /進(jìn)入繪圖狀態(tài)m_pOld=point;SetCapture(; /捕捉鼠標(biāo)CRect rect;GetClientRect( /獲取客戶窗口矩形區(qū)域ClientToScreen( /轉(zhuǎn)換為屏幕坐標(biāo)Clip

5、Cursor(rect; /限定鼠標(biāo)不能移出客戶窗口CView:OnLButtonDown(nFlags, point;同理,使用ClassWizard為視圖類CTest9View添加消息WM_LMOUSEMOVE和LBUTTONUP,并定義消息響應(yīng)函數(shù),實(shí)現(xiàn)移動(dòng)鼠標(biāo)和釋放鼠標(biāo)左鍵的相關(guān)繪圖操作。有關(guān)代碼為:void CTest9View:OnMouseMove(UINT nFlags, CPoint point / TODO: Add your message handler code here and/or call defaultif(m_bDrawCClientDC dc(this;

6、/獲取客戶窗口DCdc.MoveTo(m_pOld; /繪圖dc.LineTo(point;m_pOld=point; CView:OnMouseMove(nFlags, point;void CTest9View:OnLButtonUp(UINT nFlags, CPoint point / TODO: Add your message handler code here and/or call defaultm_bDraw=FALSE; /取消繪圖狀態(tài)ReleaseCapture(; /釋放鼠標(biāo)捕捉ClipCursor(NULL; /取消鼠標(biāo)區(qū)域的限制CView:OnLButtonUp(nFlags,

溫馨提示

  • 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)論