資源描述:
《vc++6.0繪圖基礎(chǔ)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第二章VC++6.0繪圖基礎(chǔ)上機(jī)周五5-6節(jié)1125國(guó)慶后開(kāi)始本章學(xué)習(xí)目標(biāo)MFC上機(jī)操作步驟VC++6.0基本繪圖函數(shù)本章內(nèi)容2.2MFC上機(jī)操作步驟2.3基本繪圖函數(shù)2.4本章小結(jié)習(xí)題2.2MFC上機(jī)操作步驟關(guān)于工具VisualC++6.0是目前使用極為廣泛的可視化編程平臺(tái)。使用VC++語(yǔ)言開(kāi)發(fā)的圖形,與使用TurboC語(yǔ)言開(kāi)發(fā)的圖形相比,不僅可以顯示真彩色,而且可以實(shí)現(xiàn)交互式繪圖。MicrosoftFoundationClassLibrary微軟基類(lèi)庫(kù)MFC是以C++形式封裝的WindowsAPI(ApplicationProgramInterfac
2、e)包含了一百多個(gè)已經(jīng)定義好的常用類(lèi)MFC上機(jī)操作過(guò)程啟動(dòng)MicrosoftVisualC++6.0從【File】菜單中選擇【New】命令,彈出【New】對(duì)話框,切換到【Projects】選項(xiàng)卡。在左邊窗口中選擇MFCAppWizard(exe),在右邊的Projectsname文本框中鍵入應(yīng)用程序名,這里輸入Test,在Location文本框中出現(xiàn)用于存放應(yīng)用程序的根目錄,這里設(shè)置為D:Test。其余保持默認(rèn)值。如圖所示。單擊【OK】按鈕。在對(duì)話框【MFCAppWizard-Step1】中,選中SingleDocument單選按鈕,其余保持默認(rèn)值,如
3、圖所示。單擊【Finish】按鈕結(jié)束。完成上述步驟后,應(yīng)用程序Test的框架即被生成,出現(xiàn)程序工作區(qū)。如圖所示。在工作區(qū)的【ClassView】面板中顯示所創(chuàng)建的類(lèi)和成員函數(shù)在【ResourceView】面板中顯示所創(chuàng)建的資源在【FileView】面板中顯示源程序文件,主要包括程序源文件(*.CPP)、頭文件(*.h)和資源文件(*.ico、*.bmp等)從【ClassView】面板可以看出CTestApp是應(yīng)用的主函數(shù)類(lèi),用來(lái)處理消息。MFC中的數(shù)據(jù)是存儲(chǔ)在CTestDoc類(lèi)文檔中結(jié)果的顯示是在CTestView類(lèi)中文檔類(lèi)負(fù)責(zé)管理和維護(hù)數(shù)據(jù)本身視圖類(lèi)負(fù)
4、責(zé)處理用戶鼠標(biāo)和鍵盤(pán)的操作全部展開(kāi)FileView面板后,顯示如圖的界面內(nèi)容后續(xù)編程過(guò)程中一般使用的是CTestView類(lèi)的TestView.h頭文件和TestView.cpp源文件。OnDraw(CDC*pDC)函數(shù)voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);}pDC定義為CDC類(lèi)的指針。pDoc通過(guò)GetDocument()函數(shù)得到了指向文檔類(lèi)CTestDoc的指針。OnDraw(CDC*pDC)函數(shù)voidCTestView::OnDra
5、w(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);}ASSERT_VALID(pDoc)函數(shù)使pDoc指針有效。使用pDC指針,可以對(duì)CDC類(lèi)的成員函數(shù)進(jìn)行操作。注意:OnDraw函數(shù)是由系統(tǒng)框架直接調(diào)用的,程序一運(yùn)行就會(huì)自動(dòng)執(zhí)行。!按鈕點(diǎn)擊工具條上的“!”按鈕,就可以直接編譯、運(yùn)行程序盡管未編寫(xiě)一句代碼,但Test程序已經(jīng)形成一個(gè)可執(zhí)行程序框架2.3基本繪圖函數(shù)在Windows平臺(tái)上,應(yīng)用程序的圖形設(shè)備接口(GraphicsDeviceInterface,GDI)被抽象化為設(shè)備上下文(D
6、eviceContent,DC)在微軟基類(lèi)庫(kù)MFC中,CDC類(lèi)是定義設(shè)備上下文對(duì)象的基類(lèi),所有繪圖函數(shù)都在CDC基類(lèi)中定義。2.3基本繪圖函數(shù)2.3.1CDC類(lèi)結(jié)構(gòu)和GDI對(duì)象2.3.2映射模式2.3.3CDC類(lèi)的主要繪圖成員函數(shù)2.3.4設(shè)備上下文的調(diào)用和釋放2.3.5VC++繪制圖形的幾種方法2.3.1CDC類(lèi)結(jié)構(gòu)和GDI對(duì)象1.CDC類(lèi)CDC類(lèi)有4個(gè)派生類(lèi)CClientDC類(lèi)顯示器客戶區(qū)設(shè)備上下文類(lèi)CClientDC只能在窗口的客戶區(qū)(不包括邊框、標(biāo)題欄、菜單欄以及狀態(tài)欄的空白區(qū)域)進(jìn)行繪圖點(diǎn)(0,0)是客戶區(qū)的左上角其構(gòu)造函數(shù)調(diào)用GetDC函數(shù)其
7、析構(gòu)函數(shù)調(diào)用ReleaseDC函數(shù)CMetaFileDC類(lèi)Windows圖元文件設(shè)備上下文類(lèi)CMetaFileDC封裝了在一個(gè)Windows圖元文件中繪圖的方法圖元文件是一系列與設(shè)備無(wú)關(guān)的圖片的集合,由于它對(duì)圖像的保存比像素更精確,因而往往在要求較高的場(chǎng)合下使用例如,AutoCAD中的圖像保存等。CPaintDC類(lèi)成員函數(shù)OnPaint中使用的顯示器上下文類(lèi)CPaintDC只在處理WM_PAINT消息中使用,用戶一旦獲得相關(guān)的CDC指針,就可以將它當(dāng)做任何設(shè)備環(huán)境(包括屏幕、打印機(jī))的指針來(lái)使用CPaintDC類(lèi)的構(gòu)造函數(shù)會(huì)自動(dòng)調(diào)用CWnd::Begin
8、PaintCPaintDC類(lèi)的析構(gòu)函數(shù)則會(huì)自動(dòng)調(diào)用CWnd::EndPaintC