實習指導書-基于MFC的單文檔程序設計

實習指導書-基于MFC的單文檔程序設計

ID:44286073

大?。?62.85 KB

頁數(shù):55頁

時間:2019-10-20

實習指導書-基于MFC的單文檔程序設計_第1頁
實習指導書-基于MFC的單文檔程序設計_第2頁
實習指導書-基于MFC的單文檔程序設計_第3頁
實習指導書-基于MFC的單文檔程序設計_第4頁
實習指導書-基于MFC的單文檔程序設計_第5頁
資源描述:

《實習指導書-基于MFC的單文檔程序設計》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。

1、第三部分基于MFC的單文檔程序設計1MFC中的GDI編程GDI(GraphicsDeviceInterface,圖形設備接口)是Windows操作系統(tǒng)的傳統(tǒng)圖形子系統(tǒng),負責與設備無關的圖形繪制,Win32API為應用程序提供了豐富的繪圖函數(shù)和功能,MFC對它們進行了C++類封裝,參見下圖。Windows應用程序MFCWin32API執(zhí)行程序

2、用戶界面(User)

3、圖形子系統(tǒng)(GDI)設備驅動程序

4、內(nèi)核(Kernel)

5、圖形驅動程序硬件抽象層(HAL)計算機硬件圖1.GDI與Windows操作系統(tǒng)(其中彩色部分為操作系統(tǒng))傳統(tǒng)G

6、DI是隨Windows1.0于1985年11月推出的,新式GDI+則是隨WindowsXP于2001年10月推出的GDI的改進版,增加了Q混色、漸變畫刷、樣條曲線、矩陣變換、圖像處理、持久路徑等新功能。隨WindowsVista及.NET框架3.0微軟于2006年11月乂推出了基于DirectX和.NET框架的全新圖形子系統(tǒng)WPF(WindowsPresentationFoundation,視窗顯示/展現(xiàn)基礎),它統(tǒng)一了桌面和瀏覽器等客戶端應用程序的圖形界面,采用XAML聲明式編程,將用戶界面的設計和編程徹底分離開來,是Win

7、dows的下一代GUI顯示系統(tǒng)。在MFC應用程序中,繪圖一般在視圖類的(屏幕/打印機)繪圖消息響應函數(shù)OnDniw中進行,例如:voidCDrawView::OnDraw(CDC*/*pDC*/){CDrawDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(IpDoc)return;//TODO:在此處為本機數(shù)據(jù)添加繪制代碼每次需要重繪窗口時(如程序啟動、窗口大小改變、全部或部分窗口重現(xiàn)、程序員調(diào)用窗數(shù)RedrawWindow或Invalidate/UpdateWindow),應用程序框

8、架都會調(diào)用此CWnd消息響應成員函數(shù)(的覆蓋)來繪制窗口客戶區(qū)。在Windows中,繪圖一般在框架窗口的客戶區(qū)(對應于視圖類C*View)進行,使用的是封裝在MFC的設備上下文(Device-Context,DC)類CDC屮的各種繪圖函數(shù)。在繪圖前,一般需先得到客戶區(qū)大小和CDC對象、設置繪圖顏色,然后再根據(jù)文檔數(shù)據(jù)或用戶操作來繪制各種圖形。1-1幾何對象的結構和類為了使用繪圖函數(shù),應該先了解繪圖所用到的兒種表示兒何對象的結構和類,包括點、大小和矩形,其屮常用的是點和矩形。這些結構和類被分別定義在頭文件windef.h和afx

9、win.h中。MFC中的兒何對象類都是獨立的類(不是CObject的派生類),是對API中對應結構的C++封裝,參見圖2。SimpleV^lueTypesCPoint

10、戶區(qū)大小的方法有如下兩種:1.在消息響應函數(shù)OnSize中獲得可利用屬性窗口的消息頁,為視圖類添加WM.SIZE消息的響應函數(shù)OnSize。該函數(shù)會在窗口第一次顯示或窗口大小被改變時被系統(tǒng)調(diào)用。其輸入?yún)?shù)中的ex和cy就是當前客戶區(qū)的寬和高,可將它們賦值給類變量(如giW和m_iH)供繪圖時使用。例如:voidCDrawView::OnSize(UINTnType,intcxzintcy){CView::OnSize(nType,ex,cy);//TODO:在此處添加消息處理程序代碼m_iW=ex;m_iH=cy;}其中,nT

11、ype的值為:?SIZE.MAXIMIZED(窗口已被最大化)?SIZE_MINIMIZED(窗口已被最小化)?SIZE.RESTORED(窗口已被改變大小)?SIZE_MAXHIDE(其他窗口被最大化)?SIZE.MAXSHOW(其他窗口從最大化還原)2.調(diào)用成員函數(shù)GetClientRect得到也可在繪圖前,定義一個矩形結構變量rect,然后再調(diào)用CWnd類的成員函數(shù)GetClientRect來得到當前客戶區(qū)矩形的數(shù)據(jù),該函數(shù)的原型為:voidGetClientRect(LPRECTIpRect)const;其中,矩形結構

12、的右(right)與底(bottom)就是客戶區(qū)的寬與高(其左left與頂top都為0)o例如:RECTrect;GetClientRect(&rect);intw=rect.right,h=rect-bottom;1.2.2DCCObjectGraphicalDrawing

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。