GDI基礎(chǔ)及框架應(yīng)用程序解析_圖文_第1頁(yè)
GDI基礎(chǔ)及框架應(yīng)用程序解析_圖文_第2頁(yè)
GDI基礎(chǔ)及框架應(yīng)用程序解析_圖文_第3頁(yè)
GDI基礎(chǔ)及框架應(yīng)用程序解析_圖文_第4頁(yè)
GDI基礎(chǔ)及框架應(yīng)用程序解析_圖文_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 Windows編程基礎(chǔ)1本課程旨在向?qū)W員介紹:1掌握GDI基礎(chǔ)應(yīng)用2掌握框架應(yīng)用程序開(kāi)發(fā)過(guò)程3深入透徹理解框架應(yīng)用程序時(shí)間:學(xué)時(shí)6教學(xué)方法:講授+課上練習(xí)+課下作業(yè)第七章GDI基礎(chǔ)及框架應(yīng)用程序解析2 3從需求開(kāi)始編寫(xiě)一個(gè)單文檔應(yīng)用程序,程序運(yùn)行后界面顯示:”這是一個(gè)單文檔應(yīng)用程序!” . 4三種典型的Visual C +應(yīng)用程序使用AppWizard 創(chuàng)建項(xiàng)目時(shí)可以選擇三種類(lèi)型的應(yīng)用界面即單文檔、多文檔和基于對(duì)話框的應(yīng)用程序。單文檔程序一次只能打開(kāi)一個(gè)文件或文檔,如記事本程序。多文檔程序一次可以打開(kāi)多個(gè)文檔,如word 程序。使用AppWizard 創(chuàng)建單文檔和多文檔程序幾乎一樣,差別在于

2、:在創(chuàng)建SDI 界面的應(yīng)用程序時(shí),生成CMainFrame 類(lèi),CMainFrame 類(lèi)的基類(lèi)為CFrameWnd 在創(chuàng)建MDI 界面的應(yīng)用程序時(shí),CMainFrame 類(lèi)的基類(lèi)為CMDIFrameWnd ,生成CMDIChildWnd 類(lèi) 5每次當(dāng)視窗需要被重新繪制時(shí),應(yīng)用程序框架就要調(diào)用OnDraw 函數(shù)。驅(qū)使程序調(diào)用OnDraw 的兩個(gè)途徑:用戶改變窗口的尺寸;窗口恢復(fù)先前被遮蓋的部分;應(yīng)用程序改變了窗口數(shù)據(jù);程序中調(diào)用Invalidate (或者InvalidateRect ,通知Windows 調(diào)用OnDraw 函數(shù)OnDraw 成員函數(shù) MFC中有許多類(lèi),但只有少數(shù)幾個(gè)核心的類(lèi)會(huì)對(duì)

3、應(yīng)用程序的基本框架產(chǎn)生影響,它們分別是CWinAppCDocumentCViewCFrameWndCDocTemplate這5個(gè)類(lèi)構(gòu)成了大部分MFC文檔/視圖框架應(yīng)用程序的核心,6 MFC并不是直接利用這些類(lèi)生成框架,而是使用他們的派生類(lèi)。基類(lèi)派生類(lèi)CWinApp CHelloAppCFrameWnd CMainFrameCDocument CHelloDocCView CHelloView使用派生類(lèi)優(yōu)點(diǎn)繼承基類(lèi)功能繼承了框架方便增加新功能7 8應(yīng)用程序類(lèi)和框架窗口類(lèi)應(yīng)用程序類(lèi)(CWinApp : 用MFC 編寫(xiě)的程序中唯一必不可少的類(lèi)就是CWinApp ,它控制程序的流程??蚣艽翱?CFra

4、meWnd 框架窗口是應(yīng)用程序的頂層窗口,通常是WS _OVERLAPPEDWINDOW 樣式的窗口,帶有可縮放邊框,標(biāo)題欄、系統(tǒng)菜單以及最小化、最大化和關(guān)閉按鈕,它擔(dān)當(dāng)了視圖的容器SDI 應(yīng)用程序只有一個(gè)框架窗口CFrameWnd ,它被用作應(yīng)用程序的頂層窗口并來(lái)包含視圖。MDI 應(yīng)用程序使用兩種不同類(lèi)型的框架窗口,其中CMDIFrameWnd 用作頂層窗口,而CMDIChildWnd 在頂層窗口中浮動(dòng)用來(lái)包含應(yīng)用程序文檔的視圖 在文檔/視圖結(jié)構(gòu)中,文檔是用來(lái)管理和組織數(shù)據(jù)的。CDocument類(lèi)支持文檔的標(biāo)準(zhǔn)操作,為了在應(yīng)用程序中處理文檔,首先應(yīng)該從CDocument類(lèi)派生出一個(gè)屬于自己的

5、文檔類(lèi),并且在類(lèi)中聲明一些成員變量,用來(lái)存放數(shù)據(jù);然后完成讀取和修改文檔數(shù)據(jù)的成員函數(shù);最后再至少重載專門(mén)負(fù)責(zé)文件讀寫(xiě)操作的Serialize( 函數(shù)。9 10在使用MFC 創(chuàng)建新的應(yīng)用程序框架時(shí),AppWizard 準(zhǔn)備好了文檔類(lèi)的空殼class CHelloDoc : public CDocument protected : CHelloDoc (; DECLARE _DYNCREATE (CHelloDoc public : virtual BOOL OnNewDocument (; virtual void Serialize (CArchive & ar ; ; 11視圖類(lèi)-1/4在

6、文檔/視圖結(jié)構(gòu)中,視圖的作用是顯示和編輯文檔數(shù)據(jù),提供用戶與文檔數(shù)據(jù)的交互接口。視圖在MFC 的CView 類(lèi)里被實(shí)例化。在開(kāi)發(fā)應(yīng)用程序時(shí),應(yīng)該從CView 類(lèi)派生出一個(gè)屬于自己的視圖類(lèi),并且在類(lèi)中至少改寫(xiě)專門(mén)負(fù)責(zé)顯示數(shù)據(jù)的OnDraw (函數(shù)或OnPrint (函數(shù)。 12視圖類(lèi)-2/4class CHelloView : public CView /派生出一個(gè)屬于自己的視圖類(lèi)protected : / create from serialization onlyCHelloView (; DECLARE _DYNCREATE (CHelloView public :CMyDoc * Get

7、Document (; /得到與之相關(guān)聯(lián)的文檔對(duì)象的指針public :virtual void OnDraw (CDC * pDC ; / 負(fù)責(zé)顯示數(shù)據(jù)的OnDraw (函數(shù) virtual BOOL PreCreateWindow (CREATESTRUCT & cs ;protected :virtual BOOL OnPreparePrinting (CPrintInfo * pInfo ; virtual void OnBeginPrinting (CDC * pDC , CPrintInfo * pInfo ;public :virtual CHelloView (; ; CVie

8、w類(lèi)和它的9個(gè)派生類(lèi)封裝了視圖的各種不同的功能,它們?yōu)橛脩魧?shí)現(xiàn)最新的Windows特性提供了很大的便利。這些派生視圖類(lèi)也可以作為用戶程序中視圖類(lèi)的基類(lèi),而將這些視圖類(lèi)設(shè)置為基類(lèi)的最基本的方法是在MFCAPPWizard創(chuàng)建SDI/MDI的第6步中進(jìn)行基類(lèi)的選擇。這些視圖類(lèi)如下表所示。13 1415框架窗口、文檔、視圖類(lèi)關(guān)系 16文檔模板(Document Template 文檔模板定義了文檔、視圖和框架窗口這3個(gè)類(lèi)的關(guān)系。MFC 提供了一個(gè)文檔模板類(lèi)CDocTemplate 支持文檔模板。文檔模板類(lèi)是一個(gè)抽象的基類(lèi),它定義了文檔模板的基本處理函數(shù)接口。由于它是一個(gè)抽象基類(lèi),因此不能直接用它來(lái)定

9、義對(duì)象而必需用它的派生類(lèi)。對(duì)一個(gè)單文檔界面程序,使用CSingleDocTemplate 類(lèi),而對(duì)于一個(gè)多文檔界面程序,使用CMultipleDocTemplate 類(lèi)。 17應(yīng)用實(shí)例應(yīng)用實(shí)例1:小球運(yùn)動(dòng)基礎(chǔ)版,實(shí)現(xiàn)小球從左上角到右下角移動(dòng)應(yīng)用實(shí)例2:小球運(yùn)動(dòng)升級(jí)版,當(dāng)小球碰到邊界是,實(shí)現(xiàn)反彈功能。圖形設(shè)備接口Windows操作系統(tǒng)具有豐富的圖形界面,可以說(shuō)圖形是Windows應(yīng)用程序的主體,這些圖形包括一般的幾何圖形、位圖、光標(biāo)形狀、甚至文本。為了實(shí)現(xiàn)Windows應(yīng)用程序的圖形化,Windows操作系統(tǒng)提供了大量的函數(shù),實(shí)現(xiàn)繪圖要求,這些函數(shù)的集合,我們稱之為圖形設(shè)備接口。GDI的結(jié)構(gòu):從

10、程序員的角度來(lái)看,GDI由幾百個(gè)函數(shù)調(diào)用和一些相關(guān)的數(shù)據(jù)類(lèi)型和宏組成。在GDI32.DLL中。(Window三大模塊:KERNEL32.DLL、USER32.DLL 、GDI32.DLL18 在Windows應(yīng)用程序中,應(yīng)用程序的輸出并不直接面向物理設(shè)備,如顯示屏或打印機(jī),而是針對(duì)一個(gè)稱之為設(shè)備描述表(Device Context的邏輯設(shè)備進(jìn)行操作,設(shè)備環(huán)境與實(shí)際設(shè)備之間的信息傳送由Windows直接管理。設(shè)備描述表(Device Context簡(jiǎn)稱為DC,也稱設(shè)備上下文、設(shè)備環(huán)境,是一種包含各種繪圖屬性(如前面所說(shuō)的字體、顏色和方法(即各種繪圖函數(shù)的數(shù)據(jù)結(jié)構(gòu),它定義了設(shè)備、畫(huà)圖工具和畫(huà)圖信息

11、,它不僅可以繪制各種圖形,而且還可以確定在應(yīng)用窗口中繪制圖形的方式和圖形的樣式,它是應(yīng)用程序與輸出設(shè)備之間的橋梁。19 如果想在一個(gè)圖形輸出設(shè)備上繪圖:首先獲得一個(gè)DC的句柄(類(lèi)型:HDC在GDI函數(shù)中將這個(gè)句柄作為一個(gè)參數(shù),告訴Windows你想在這個(gè)設(shè)備上進(jìn)行繪圖。20 21設(shè)備描述表-3/3得到DC 句柄后,Windows 會(huì)使用默認(rèn)的屬性值,然后將這些屬性值填入到設(shè)備表結(jié)構(gòu)??梢酝ㄟ^(guò)設(shè)置設(shè)備描述表屬性的GDI 函數(shù)改變這些屬性值。通過(guò)GDI 獲取屬性信息函數(shù)可以取得這些屬性的當(dāng)前值。還有其他的一些GDI 繪圖函數(shù)可以實(shí)現(xiàn)在客戶區(qū)上繪圖。 22MFC 中的設(shè)備描述表在MFC 編程中,設(shè)備

12、描述表被封裝成類(lèi)。在MFC 編程方式中,程序員不用捕獲設(shè)備描述表句柄和調(diào)用GDI 輸出函數(shù),而是通過(guò)創(chuàng)建一個(gè)設(shè)備描述表對(duì)象并調(diào)用它的成員函數(shù)來(lái)實(shí)現(xiàn)畫(huà)圖和文本顯示。MFC 的CDC 類(lèi)將Windows 設(shè)備描述表和獲取設(shè)備描述表句柄的GDI 函數(shù)封裝在一起,而CDC 的派生類(lèi)如CPaintDC 和CClientDC 則代表Windows 應(yīng)用程序使用不同類(lèi)型的設(shè)備描述表。CObjectCDCCClientDCCWindowDCCPaintDCCMetaFileDC23 CDC類(lèi)它是所有設(shè)備描述表的基類(lèi).CPaintDC類(lèi)這是創(chuàng)建響應(yīng)WM_PAINT消息的DC,僅限于OnPaint處理程序,也就是

13、說(shuō)通常它在OnPaint應(yīng)用程序的OnPaint函數(shù)中使用,注意OnPaint函數(shù)會(huì)調(diào)用OnDraw函數(shù)。CClientDC類(lèi)這是客戶區(qū)設(shè)備描述表,在窗口中畫(huà)圖可以使用這個(gè)類(lèi)(除了WM_PAINT消息外。24 CWindowDC類(lèi)這是代表整個(gè)窗口的設(shè)備描述表,包括客戶區(qū)和非客戶區(qū)CMetaFileDC類(lèi)這是代表Windows圖元文件的DC。25CWindowDC、CPaintDC、CClientDC比較繪圖區(qū)域不同用CPaintDC和CClientDC類(lèi)的對(duì)象繪制圖形時(shí),繪制區(qū)只能是客戶區(qū),而不能在非客戶區(qū);而CWindowDC可以在非客戶區(qū)進(jìn)行繪圖。繪圖坐標(biāo)系不同在CWindowDC繪圖類(lèi)下

14、,坐標(biāo)系是建立在整個(gè)屏幕之上的,在像素坐標(biāo)方式下,坐標(biāo)原點(diǎn)在屏幕的左上角。而CPaintDC和CClientDC類(lèi)的坐標(biāo)系是建立在客戶區(qū)上的,在像素坐標(biāo)方式下,坐標(biāo)原點(diǎn)在客戶區(qū)的左上角。2627CDC 設(shè)備描述表屬性函數(shù)CDC :GetMapMode CDC :SetMapMode MM _TEXT 映射模式CDC :SelectObject CDC :SelectObject WHITE _BRUSH 當(dāng)前畫(huà)刷CDC :SelectObject CDC :SelectObject BLACK _PEN 當(dāng)前畫(huà)筆CDC :GetTextColor CDC :SetTextColor Black

15、 文本顏色獲取函數(shù)設(shè)置函數(shù)缺省值屬性 28方法1:GetDC 函數(shù)最常用的調(diào)用形式有兩種,一種是Windows API 函數(shù)形式,如下:HDC GetDC (HWND hWnd / handle to window;該函數(shù)只有一個(gè)參數(shù),此參數(shù)是想要獲得的DC 所在的窗口的句柄,如果該參數(shù)為NULL ,那么得到的DC 將是整個(gè)屏幕釋放函數(shù)格式:int ReleaseDC ( HWND hWnd , HDC hDC 另一種是CWnd 類(lèi)的成員函數(shù),如下:CDC * GetDC ( ;int ReleaseDC ( CDC * pDC ; 29方法2:BeginPaint 函數(shù)其最常用的調(diào)用形式也有

16、兩種,一種是Windows API 函數(shù)形式,如下:HDC BeginPaint ( HWND hwnd , LPPAINTSTRUCT lpPaint ;該函數(shù)有兩個(gè)參數(shù),一個(gè)是需要重繪的窗口的句柄,另一個(gè)是指向結(jié)構(gòu)PAINTSTRUCT 變量的指針。釋放函數(shù)格式:BOOL EndPaint ( HWND hWnd ,CONST PAINTSTRUCT *lpPaint ;另一種常用的形式是CWnd 類(lèi)的成員函數(shù),如下:CDC * BeginPaint ( LPPAINTSTRUCT lpPaint 釋放函數(shù)格式:void EndPaint ( LPPAINTSTRUCT lpPaint ;

17、 方法3:直接構(gòu)造CDC對(duì)象該方法是用聲明一個(gè)CDC類(lèi)或其派生類(lèi)對(duì)象的方式來(lái)獲取。方法如下:CClientDC dc( CWnd* ;此時(shí)構(gòu)造的是一個(gè)對(duì)象。這種方法實(shí)際上是間接使用了GetDC成員函數(shù)。因?yàn)楫?dāng)一個(gè)C+類(lèi)聲明一個(gè)對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該類(lèi)的構(gòu)造函數(shù),而在CClient類(lèi)的構(gòu)造函數(shù)中就調(diào)用了GetDC函數(shù)。當(dāng)這個(gè)對(duì)象被釋放時(shí),又會(huì)自動(dòng)調(diào)用該類(lèi)的析構(gòu)函數(shù),在析構(gòu)函數(shù)中則調(diào)用了ReleaseDC函數(shù),用例釋放設(shè)備描述表。30 31關(guān)于設(shè)備描述表使用說(shuō)明當(dāng)在棧上構(gòu)造DC ,若對(duì)象的生命周期結(jié)束,則它的析構(gòu)函數(shù)會(huì)被自動(dòng)調(diào)用,而且析構(gòu)函數(shù)一旦被調(diào)用,設(shè)備描述表就會(huì)返回給Windows 。當(dāng)在

18、堆上用new 創(chuàng)建設(shè)備描述表(DC 時(shí),要注意親自釋放設(shè)備描述表,如:CPaintDC * pDC =new CPaintDC (this ;在這種情況下,有必要在創(chuàng)建設(shè)備描述表的函數(shù)結(jié)束之前執(zhí)行刪除語(yǔ)句。delete pDC ; 32MFC 框架封裝的OnPaint (函數(shù)void CView :OnPaint ( CPaintDC dc (this ; OnPrepareDC (&dc ; OnDraw (&dc ; 說(shuō)明:CPaintDC 的構(gòu)造函數(shù)自動(dòng)調(diào)用BeginPaint 函數(shù),析構(gòu)函數(shù)中自動(dòng)調(diào)用EndPaint 函數(shù) 第一個(gè)WM_PAINT消息大多數(shù)應(yīng)用程序在WinMain中進(jìn)入

19、消息循環(huán)之前的初始化期間都會(huì)調(diào)用函數(shù)UpdateWindow。Windows利用這個(gè)機(jī)會(huì)給窗口過(guò)程發(fā)送第一個(gè)WM_PAINT消息什么情況會(huì)產(chǎn)生WM_PAINT消息?在用戶移動(dòng)或顯示窗口時(shí),窗口中先前被隱藏的區(qū)域重新可見(jiàn);用戶改變窗口的大小。程序使用ScrollWindow或ScrollDC函數(shù)滾動(dòng)客戶區(qū)的一部分;程序使用InvalidateRect或InvalidateRgn等函數(shù)時(shí),這種方法經(jīng)常被使用。其它情況:如下拉菜單或工具條提示信息等情況33 34GDI 對(duì)象應(yīng)用實(shí)例例:在View 窗口中實(shí)現(xiàn)畫(huà)線的功能,以鼠標(biāo)左鍵按下及抬起點(diǎn)做端點(diǎn)畫(huà)線。實(shí)現(xiàn)過(guò)程:新建MFC 應(yīng)用程序在View 類(lèi)中添

20、加成員變量,用于保存鼠標(biāo)按下點(diǎn)的坐標(biāo)。添加響應(yīng)的消息WM _LBUTTONDOWN 和WM _LBUTTONUP .實(shí)現(xiàn)消息響應(yīng)函數(shù)使用MoveTo 和LineTo 成員函數(shù) 35與繪制圖形相關(guān)的幾個(gè)類(lèi)先介紹幾個(gè)常用的與圖形繪制有關(guān)的數(shù)據(jù)結(jié)構(gòu)類(lèi)。1.CPoint 類(lèi)2.CSize 類(lèi)3.CRect 類(lèi)4.RGB 宏圖形對(duì)象圖形對(duì)象類(lèi)是MFC封裝的Windows繪圖工具CObjectCGdiObjectCPen CBrush CFont CBitmap CPalette CRgn 畫(huà)筆類(lèi)刷子類(lèi)字體類(lèi)位圖類(lèi)調(diào)色板類(lèi)區(qū)域類(lèi)36 37畫(huà)筆對(duì)象MFC 類(lèi)CPen 封裝了GDI 中的畫(huà)筆對(duì)象,畫(huà)筆對(duì)象代表

21、了進(jìn)行繪制時(shí)所用的線條。默認(rèn)畫(huà)筆畫(huà)出的是一個(gè)像素點(diǎn)寬的黑色實(shí)線。Windows 用當(dāng)前選入DC 的畫(huà)筆繪制直線和曲線,并給用Rectangle 、Ellipse 以及其它圖形生成函數(shù)畫(huà)出的圖形鑲畫(huà)邊框。 方法一:構(gòu)造一個(gè)CPen對(duì)象并把定義畫(huà)筆所用參數(shù)都傳給該對(duì)象。CPen pen(PS_SOLID,1,RGB(255,0,0;方法二:構(gòu)造一個(gè)沒(méi)有初始化的CPen對(duì)象并調(diào)用CPen:CreatePen。CPen pen;pen.CreatePen(PS_SOLID,1,RGB(255,0,0;38 39方法三:構(gòu)造一個(gè)沒(méi)有初始化的CPen 對(duì)象,向LOGPEN 結(jié)構(gòu)中填充描述畫(huà)筆特性的參數(shù),然

22、后再調(diào)用CPen :CreatePenIndirect 生成畫(huà)筆。 CPen pen ;LOGPEN lp ; lp .lopnStyle =PS _SOLID ; lp .lopnWidth .x =1; lp .lopnColor =RGB (255,0,0; pen .CreatePenIndirect (&lp ; BOOL CreatePen( int nPenStyle, int nWidth,COLORREF crColor ;其中參數(shù)nPenStyle代表了畫(huà)筆的樣式,可以為下列值之一PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDO

23、T,PS_NULL,PS_INSIDEFRAME怎樣使用創(chuàng)建好的畫(huà)筆只要把畫(huà)筆選入DC,然后調(diào)用畫(huà)線函數(shù)即可。示例如下:CPen pen(PS_SOLID,10,RGB(255,0,0;/紅色畫(huà)筆CPen *pOldPen=dc.SelectObject(&pen;dc.Ellipse(0,0,100,100;40 41 42 43畫(huà)筆的使用格式在OnDraw 函數(shù)中CClientDC dc (this ;CPen NewPen ,*OldPen ;NewPen .CreatePen (PS _DASH ,1,RGB (255,0,0;OldPen =dc .SelectObject (&Ne

24、wPen ;使用該筆進(jìn)行繪畫(huà);dc .SelectObject (OldPen ; 44刷子對(duì)象用來(lái)在GDI 輸出時(shí)填充一個(gè)封閉圖形的內(nèi)部。在繪制時(shí),Windows 將多個(gè)這樣的位圖平鋪起來(lái)填充封閉圖形的內(nèi)部MFC 的CBrush 類(lèi)封裝了刷子對(duì)象CBrush ( ;CBrush (COLORREF crColor ;CBrush (int nIndex ,COLORREF crColor ;CBrush (CBitmap * pBitmap ;crColor 刷子顏色nIndex 刷子圖案 畫(huà)刷有三種基本類(lèi)型:單色畫(huà)刷:它填充的是單色帶陰影話刷:它采用預(yù)先定義好的交叉線圖案填充圖形。圖案話刷

25、:它采用位圖來(lái)填充圖形。單色畫(huà)刷的創(chuàng)建方法方法一:將COLORREF的值傳遞給CBrush構(gòu)造函數(shù)。Cbrush brush(RGB(255,0,0;方法二:創(chuàng)建一個(gè)沒(méi)有初始化的CBrush對(duì)象,然后調(diào)用CBrush:CreateSolidBrush函數(shù)。方法三:將LOGBRUSH初始化并調(diào)用CBrush:CreateBrushIndirect45 陰影畫(huà)刷的創(chuàng)建方法:方法一:CBrush brush(HS_DIAGCROSS,RGB(255,0,0;方法二:CBrush brush;brush.CreateHatchBrush(HS_DIAGCROSS,RGB(255,0,0;成員函數(shù)CreateHatchBrush創(chuàng)建一個(gè)陰影刷子,其原型如下:BOOL CreateHatchBrush( int nIndex, COLORREFcrColor 參數(shù)nIndex指定了刷子的樣式,它可以為以下常量之一:HS_BDIAGONAL:由左向右下斜45度的陰影線HS_CROSS:水平和垂直的交叉線HS_DIAGCROSS:45度的斜交叉線46 字體對(duì)象字體對(duì)象決定的設(shè)備上下文中進(jìn)行文本輸出的字符樣式。在使用字體對(duì)象的時(shí)候,我們一般先創(chuàng)建一個(gè)CFont對(duì)象,然后調(diào)用CreateFont、CreateFontIndirect、CreatePointFont及CreatePointFontI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論