![VC++6.0入門[第五章圖形和文本輸出]_第1頁(yè)](http://file4.renrendoc.com/view/63463e5c08d12f661b32eebd42670653/63463e5c08d12f661b32eebd426706531.gif)
![VC++6.0入門[第五章圖形和文本輸出]_第2頁(yè)](http://file4.renrendoc.com/view/63463e5c08d12f661b32eebd42670653/63463e5c08d12f661b32eebd426706532.gif)
![VC++6.0入門[第五章圖形和文本輸出]_第3頁(yè)](http://file4.renrendoc.com/view/63463e5c08d12f661b32eebd42670653/63463e5c08d12f661b32eebd426706533.gif)
![VC++6.0入門[第五章圖形和文本輸出]_第4頁(yè)](http://file4.renrendoc.com/view/63463e5c08d12f661b32eebd42670653/63463e5c08d12f661b32eebd426706534.gif)
![VC++6.0入門[第五章圖形和文本輸出]_第5頁(yè)](http://file4.renrendoc.com/view/63463e5c08d12f661b32eebd42670653/63463e5c08d12f661b32eebd426706535.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VC+6簡(jiǎn)明教程 第5章圖形和文本輸出Windows使用圖形設(shè)備接口(GDI)進(jìn)行圖形輸出和文本輸出,MFC封裝了GDI對(duì)象,提供了CGdiObject類和CDC類支持圖形輸出和文本輸出,本章你將學(xué)習(xí)使用CGdiObject類和CDC類在視圖中輸出各種圖形和文本的方法和技巧。5.1圖形設(shè)備接口和CDC511圖形設(shè)備接口(GDI)Windows操作系統(tǒng)通過圖形設(shè)備接口,簡(jiǎn)稱GDI(GraphicsDeviceInterface),管理Windows程序的所有圖形輸出,包括顯示在屏幕上的窗口,屏幕保護(hù)程序的運(yùn)行,文檔的打印。GDI處理與不同輸出設(shè)備的連接,從而應(yīng)用程序開發(fā)者不需要去考慮基礎(chǔ)硬件設(shè)備
2、之間的不同。應(yīng)用程序可以使用GDI創(chuàng)建3種類型的圖形輸出:矢量圖形、光柵圖形和文本。1矢量圖形矢量圖形輸出是指創(chuàng)建線和填充圖形,包括點(diǎn)、直線、曲線、多邊形、扇形和矩形。2光柵圖形光柵圖形輸出是指光柵圖形函數(shù)對(duì)以位圖形式存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,它包括各種位圖和圖標(biāo)的輸出。在屏幕上表現(xiàn)為對(duì)若干行和列的像素操作,在打印機(jī)上則是若干行和列的點(diǎn)陣輸出。光柵圖形是直接從內(nèi)存到顯存的拷貝操作,所以速度快,但是對(duì)內(nèi)存要求高。3文本文本輸出是GDI的另一項(xiàng)任務(wù)。輸出文本時(shí)文本的輸出位置的計(jì)算不是以行為單位,而是以邏輯坐標(biāo)為單位計(jì)算。用戶可以設(shè)置文本的各種效果,如加粗、斜體、設(shè)置顏色等。MFC處理圖形輸出是通過設(shè)備上
3、下文CDC類和圖形對(duì)象CGdiObject類來完成的。512繪圖工具GDI對(duì)象CGdiObjectCGdiObject是MFC提供繪圖工具的類,它的派生類包括畫筆(CPen)、畫刷(CBrush)、字體(CFont)、位圖(CBitmap)、調(diào)色板(CPalette)、區(qū)域(CRgn)等,它們的繼承關(guān)系如圖5-1所示。圖CGdiObject類的構(gòu)成各個(gè)派生類的任務(wù)是:畫筆(CPen)封裝GDI畫筆,用于繪制對(duì)象的邊框以及直線和曲線。默認(rèn)畫筆用于繪制與一個(gè)像素等寬的黑色實(shí)線。畫刷(CBrush)封裝GDI畫刷。畫刷是用來填充一個(gè)封閉的圖形對(duì)象(如矩形,圓形)的內(nèi)部區(qū)域。默認(rèn)的畫刷顏色是白色。字體
4、(CFont)封裝GDI字體對(duì)象,用戶可以建立一種GDI字體,并使用CFont的成員函數(shù)來訪問它。主要影響文本輸出的效果,包括文字的大小、是否加粗、是否斜體、是否加下劃線等。位圖(CBitmap)封裝GDI位圖,提供成員函數(shù)裝載和位圖操作,位圖可以用于填充區(qū)域。調(diào)色板(CPalette)封裝GDI調(diào)色板,保存系統(tǒng)可用的色彩信息,是應(yīng)用程序和彩色輸出設(shè)備上下文的接口。區(qū)域(CRgn)封裝GDI區(qū)域。區(qū)域是窗口內(nèi)的一塊多邊形或橢圓形區(qū)域。CRgn用于設(shè)備上下文(通常是窗口)內(nèi)的區(qū)域操作。CRgn通常與CDC類中與裁剪(clipping)有關(guān)的成員函數(shù)配合使用。513設(shè)備描述表(DC)設(shè)備上下文(D
5、eviceCoMe竝),簡(jiǎn)稱DC,是由GDI創(chuàng)建用來代表設(shè)備連接的數(shù)據(jù)結(jié)構(gòu)。DC的主要功能有:允許應(yīng)用程序使用一個(gè)輸出設(shè)備。提供窗口應(yīng)用程序,設(shè)備驅(qū)動(dòng),和輸出設(shè)備之間的連接。保存當(dāng)前信息,例如在一個(gè)窗口內(nèi)繪圖使用的顏色,畫筆的寬度、畫刷的類型等等。保存窗口剪取區(qū)域(clippingregion),限制程序輸出到輸出設(shè)備中窗口覆蓋的區(qū)域。514設(shè)備上下文類(CDC)MFC封裝了DC,提供CDC類及它的子類訪問GDI,如圖5-2所示,各類作用介紹如下。圖CDC及子類CDC類封裝了所有圖形輸出函數(shù),包含了一個(gè)DC的創(chuàng)建和初始化,及通用GDI對(duì)象的操作,包括畫簡(jiǎn)單圖形(如線、矩形、橢圓)和復(fù)雜的功能(
6、如區(qū)域、位圖、剪切區(qū)域)的操作。CDC類的適應(yīng)范圍最廣,不僅能支持窗口,還能支持打印機(jī)。ClientDC類CClientDC又名客戶區(qū)設(shè)備上下文,用于客戶區(qū)的輸出,一般在響應(yīng)非窗口消息并對(duì)客戶區(qū)繪圖時(shí)要用到該類,例如在鼠標(biāo)雙擊時(shí)要輸出文本等。CPaintDCCPaintDC用于響應(yīng)窗口重繪消息(WM_PAINT)的繪圖輸出,不僅可對(duì)客戶區(qū)進(jìn)行操作,還可以對(duì)非客戶區(qū)進(jìn)行操作。CWindowDCCWindowDC用于窗口客戶區(qū)和非客戶區(qū)(包括窗口邊框、標(biāo)題欄、控制按鈕等)的繪制,除非要自己繪制窗口的邊框和按鈕,否則一般不用它。CMetaFileDCCMetaFileDC專門用于圖元文件的繪制。圖元
7、文件記錄一組GDI操作命令,可以通過這一組GDI命令重建圖形輸出。使用CMetaFileDC時(shí),所有的圖形輸出命令會(huì)自動(dòng)記錄到一個(gè)與CMetaFileDC相關(guān)的圖元文件中。515OnDraw函數(shù)當(dāng)用AppWizard創(chuàng)建單文檔或多文檔應(yīng)用程序時(shí),視圖類包含成員函數(shù)OnDraw()函數(shù),CDC指針被傳遞給OnDraw()函數(shù),下面的程序清單5-1顯示了在視圖窗口中輸出一行文本的一個(gè)簡(jiǎn)單的OnDraw()函數(shù)。程序清單:用于輸出的OnDraw函數(shù)voidCExam5View:OnDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc)
8、;/TODO:adddrawcodefornativedataherepDC-TextOut(1,1,”helloworld!”);J當(dāng)視圖窗口或窗口的一部分需要重繪時(shí),系統(tǒng)會(huì)發(fā)給窗口一個(gè)WM_PAINT消息,MFC的窗口框架會(huì)將該消息映射到CWnd:OnPaint()函數(shù),OnPaint()函數(shù)創(chuàng)建一個(gè)DC,并調(diào)用視圖的OnDraw()函數(shù)。5.1.6WM_PAINTWM_PAINT消息是最重要的繪圖消息,它要求窗口重新繪制內(nèi)容。產(chǎn)生WM_PAINT消息的場(chǎng)合通常有:(1窗)口移動(dòng)后及最大化,最小化后的刷新。被覆蓋區(qū)域的刷新,如下拉菜單覆蓋的區(qū)域。無效區(qū)域產(chǎn)生后的刷新,如執(zhí)行滾動(dòng)條操作,將一
9、區(qū)域移動(dòng)至不可見。有時(shí)數(shù)據(jù)發(fā)生變化時(shí),需要人為生成一個(gè)繪制消息,重繪窗口,可以調(diào)用幾個(gè)CWnd的函數(shù)。表5-1產(chǎn)生繪制消息的函數(shù)函數(shù)舉例說明Invalidate(TRUE);此函數(shù)聲明整個(gè)客戶區(qū)無效CRectRect(l,l,300,300)InvalidateRect(&Rect,TRUE)此函數(shù)聲明選定的區(qū)域無效,這樣可以減少因重繪而產(chǎn)生的屏幕閃爍517獲取設(shè)備上下文(DC)繪圖前必須準(zhǔn)備好設(shè)備上下文(DC),在一個(gè)MFC應(yīng)用程序獲得DC的常用方法有兩種:一種是接受一個(gè)參數(shù)為指向CDC對(duì)象的指針,另一種是構(gòu)造CClientDC對(duì)象。一些消息處理函數(shù)可以通過參數(shù)接受指向CDC對(duì)象的指針,如O
10、nDraw()函數(shù)。程序清單:用于輸出一個(gè)黑點(diǎn)的OnDraw函數(shù)voidCExam5View:0nDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahere/在坐標(biāo)為10,10的位置上畫一點(diǎn),顏色為黑色pDC-SetPixel(CPoint(10,10),RGB(0,0,0);J也可以使用CClientDC類創(chuàng)建一個(gè)局部DC對(duì)象,例如,在鍵盤響應(yīng)消息處理函數(shù)和鼠標(biāo)響應(yīng)消息處理函數(shù)中要進(jìn)行文本輸出或圖形繪制時(shí),通常要?jiǎng)?chuàng)建一個(gè)這樣的對(duì)象,并使用this指針為該對(duì)象賦值
11、。程序清單:在鼠標(biāo)點(diǎn)擊畫一紅點(diǎn)的鼠標(biāo)左鍵單擊消息處理函數(shù)voidCExam5View:OnLButtonDown(UNITnFlags,CPointpoint)/TODO:adddrawcodefornativedatahereCClientDCdc(this);/this指針將CExam5View賦值給創(chuàng)建的dc對(duì)象dc.SetPixel(point,RGB(255,0,0);CView:OnLButtonDown(nFlags,point);5.1.8編程實(shí)例【例5-1】編寫一個(gè)單文檔MFCEXE程序Exam5_l,在視圖類增加成員變量,追蹤鼠標(biāo)左鍵雙擊的最新坐標(biāo),并輸出坐標(biāo)信息,運(yùn)行效果
12、如圖所示。1使用AppWizard2為視圖類增加成員(1)選擇WorkSp;MemberVariabie采單項(xiàng),增加CPoint類的公有成員變量m_LPoint。在CExam5_1View類的構(gòu)造函數(shù)CExam5_1View()中,初始化變量m_LPoint為0,0。如程序清單5-4所示。程序清單:CPoint類型對(duì)象引用CExam5_1View:CExam5_1View()/TODO:addconstructioncodeherem_LPoint.x=0;m_LPoint.y=0;3.在OnDraw()函數(shù)中添加代碼,在第一行輸出成員變量的值。如程序清單5-5粗體部分所示。程序清單:在視圖中
13、輸出整型數(shù)據(jù)的OnDraw函數(shù)voidCExam5_1View:OnDraw(CDC*pDC)CExam51Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahereCStringstr;str.Format(“鼠標(biāo)左鍵雙擊的位置是%d,%d”,m_LPoint.x,m_LPoint.y);pDC-TextOut(0,0,str);4在視圖類增加鼠標(biāo)左鍵雙擊的消息映射,修改成員變量,更新視圖打開ClassWizard,選擇MessageMap標(biāo)簽,ClassName列表中選擇CExam5_lView,
14、ObjectIDS列表中選擇CExam5_1View,Messages列表中選擇WM_LBUTTONDBLCLK,單擊“AddFunction”按鈕,添加鼠標(biāo)左鍵雙擊消息映射。(2)單擊“EditCode”按鈕,添加處理代碼,用當(dāng)前鼠標(biāo)位置Point值替換m_LPoint的值,并設(shè)置無效區(qū)域,刷新視圖。程序清單:產(chǎn)生重繪消息的鼠標(biāo)消息處理函數(shù)voidCExam5_1View:OnLButtonDblClk(UINTnFlags,CPointpoint)/TODO:Addyourmessagehandlercodehereand/orcalldefaultm_LPoint=point;Inval
15、idate(TRUE);CView:OnLButtonDblClk(nFlags,point);J5編譯、鏈接、執(zhí)行,可得到如圖5-3所示的結(jié)果5.2處理文本在窗口應(yīng)用程序中經(jīng)常使用GDI處理文本輸出,文本的輸出過程包括文本的屬性設(shè)置、字體設(shè)置、文本格式化、調(diào)用文本輸出函數(shù)輸出文本等具體的過程,下面將分別講述。5.2.1設(shè)置文本顏色在窗口操作系統(tǒng)中采用32位來表示顏色,MFC和SDK采用COLORREF數(shù)據(jù)結(jié)構(gòu)表示顏色,COLORREF的結(jié)構(gòu)如圖5-4所示,采用8位(值域范圍為0-255)分別表示紅、藍(lán)、綠三色。定義顏色的最簡(jiǎn)單的方法是使用RGB()宏,它采用三個(gè)參數(shù),用0-255的值來表示紅
16、色、藍(lán)色、綠色。同樣使用宏GetRValue(),GetGValue(),GetBValue()可以從一個(gè)COLORREF類型的變量中分離三元色。DataTypeMacros圖顏色的表示常用設(shè)備顏色清單基本三元色COLORREFcrRed=RGB(255,0,0);COLORREFcrGreen=RGB(0,255,0);COLORREFcrBlue=RGB(0,0,255)/16-color設(shè)備支持顏色constCOLORREFg_crBlack=RGB(0,0,0);constCOLORREFg_crYellow=RGB(255,255,0);constCOLORREFg_crDkYell
17、ow=RGB128,128,0);constCOLORREFg_crRed=RGB(255,0,0);constCOLORREFg_crDkRed=RGB(128,0,0);constCOLORREFg_crMagenta=RGB(255,0,255);constCOLORREFg_crDkMagenta=RGB128,0,128);constCOLORREFg_crBlue=RGB(0,0,255);constCOLORREFg_crDkBlue=RGB(0,0,128);constCOLORREFg_crCyan=RGB(0,255,255);constCOLORREFg_crDkCyan
18、=RGB(0,128,128);constCOLORREFg_crGreen=RGB(0,255,0);constCOLORREFg_crDkGreen=RGB(0,128,0);constCOLORREFg_crGray=RGB(192,192,192);constCOLORREFg_crDkGray=RGB(128,128,128);constCOLORREFg_crWhite=RGB(255,255,255);/256色設(shè)備支持的顏色舉例constCOLORREFg_crLtYellow=RGB(255,251,240);constCOLORREFg_crLtGreen=RGB(192,
19、220,192);constCOLORREFg_crLtBlue=RGB(166,202,240);constCOLORREFgcrMedGreen=RGB(160,160,164);設(shè)置顏色的場(chǎng)合有設(shè)置文本顏色、設(shè)置畫筆和畫刷的顏色。設(shè)置畫筆和畫刷的顏色的方法我們將在介紹GDI對(duì)象時(shí)講述,設(shè)置文本顏色包括設(shè)置前景色和背景色。為了設(shè)置在繪制文本的前景像素時(shí)使用的顏色,調(diào)用CDC:SetTextColor(),函數(shù)定義如下:COLORREFSetTextColor(COLORREFcrColor);(2)為了設(shè)置在繪制文本的背景像素時(shí)使用的顏色,調(diào)用CDC:SetBkColor(),函數(shù)定義如下
20、:COLORREFSetBkColor(COLORREFcrColor);對(duì)Exam5_l程序增加實(shí)現(xiàn)產(chǎn)生黑色背景,紅色文本的視圖。程序清單見下面粗體部分:程序清單:在視圖中設(shè)置顏色白勺OnDraw函數(shù)voidCExam5_1View:0nDraw(CDC*pDC)CExam5_1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedataherepDC-SetTextColor(RGB(255,0,0);pDC-SetBkColor(RGB(0,0,0);CStringstr;str.Format(”鼠標(biāo)左鍵
21、雙擊的位置是%d,%d,m_LPoint.x,m_LPoint.y);pDC-TextOut(0,0,str);J5.2.2設(shè)置文本顯示屬性CDC還提供了設(shè)置文本顯示屬性的函數(shù),下表5-2列出了三組控制文本的顯示屬性常用函數(shù)表文本屬性設(shè)置函數(shù)函數(shù)說明SetBkMode和GetBkMode設(shè)置和獲得背景模式SetTextAlign和GetTextAlign設(shè)置和獲得對(duì)齊方式SetTextJusttificationSetTextCharaterExtra調(diào)整文本文本背景模式的默認(rèn)設(shè)置是OPAQUE,它要求GDI用戶要使用背景顏色,可替換設(shè)置為TRANSPARENT,要求GDI用戶在繪制文本時(shí),不
22、要使用背景色,函數(shù)的格式:intCDC:SetBkMode(intnBkMode);SetBkMode()函數(shù)返回先前的背景模式,nBkMode表示背景模式,只有兩種:OPAQUE和TRANSPARENT。intCDC:GetBkMode()const;GetBkMode()函數(shù)返回當(dāng)前使用的背景模式。文本對(duì)齊描述了(x,y)文本坐標(biāo)和文本框之間的關(guān)系。默認(rèn)設(shè)置將文本與文本坐標(biāo)右下方對(duì)齊。可使用SetTextAlign函數(shù)設(shè)置文本對(duì)齊,函數(shù)格式:UINTSetTextAlign(UINTnFlags);nFlag為表5-3中列出的標(biāo)志的組合,各欄中的標(biāo)志之間相互排斥,只能從一欄中取一種標(biāo)志,第
23、一行為系統(tǒng)的默認(rèn)設(shè)置值,例如:pDC-SetTextAlign(TA_RIGHT|TA_TOP);表文本對(duì)齊風(fēng)格X軸對(duì)齊Y軸對(duì)齊更新當(dāng)前位置TALEFTTATOPTANOUPSATECPTACENTERTABASELINETAUPDATECPTARIGHTTABOTTOM如果準(zhǔn)備將不同字體,不同字號(hào)的文本混合在一行,使用y軸默認(rèn)設(shè)置TA_TOP將產(chǎn)生奇怪的現(xiàn)象,這時(shí)應(yīng)該更改y軸默認(rèn)設(shè)置為TA_BOTTOM。SetTextJusttification()和SetTextCharaterExtra()函數(shù)用于設(shè)置文本屬性:文本調(diào)整和文本額外間隔。這兩種屬性能夠幫助填補(bǔ)文本行。填補(bǔ)文本行是為了生成W
24、YSIWYG(所見即所得)輸出。在大多數(shù)情況下,它意味著顯示屏幕輸出變形,以模仿打印輸出的效果。SetTextJusttification()函數(shù)能夠指定添加到各個(gè)間隔字符的像素?cái)?shù),如果需要更多地填充,則應(yīng)調(diào)用SetTextCharaterExtra()函數(shù),將額外的像素添加到各個(gè)字符(而不是間隔字符)。5.2.3設(shè)置字體字體是一組復(fù)雜的圖形圖像,大小和設(shè)計(jì)都是統(tǒng)一的,用于表示字符數(shù)據(jù)。字體通常由磅值、名稱和風(fēng)格標(biāo)識(shí)的,如8磅粗體Arial這樣的風(fēng)格。處理字體的最簡(jiǎn)單的方法是使用GDI的常備字體,如要自己設(shè)置顯示字體的風(fēng)格需要?jiǎng)?chuàng)建一個(gè)CFont的對(duì)象,具體步驟如下:定義CFont對(duì)象調(diào)用Cre
25、ateFont()函數(shù)創(chuàng)建字體將創(chuàng)建的字體對(duì)象選入DC,并保存前一個(gè)被選入DC的字體對(duì)象CreateFont()函數(shù)包括大量參數(shù),具體解釋如下:格式:BOOLCreateFont(intnHeight,/字體所需高度,為0使用默認(rèn)值intnWidth,/字符的寬度值,為0表示設(shè)備的縱橫比匹配可用字體的縱橫比intnEscapement,/字體轉(zhuǎn)義,指定轉(zhuǎn)義矢量和x軸的夾角intnOrientation,/字體方向,指定字符基線和x軸的夾角(以0.1度為單位)intnWeight,/字體厚度BYTEbltalic是否斜體,布爾值BYTEbUnderline,/是否帶有下劃線,布爾值BYTEcSt
26、rikeOut,/是否帶有刪除線,布爾值BYTEnCharSet,/使用的字符集BYTEnOutPrecision,/輸出精度BYTEnClipPrecision,/剪取精度BYTEnQuality,/輸出質(zhì)量BYTEnPitchAndFamily,/字符間距和字族LPCTSTRlpszFacename/字體的字樣名稱);返回值:如果成功,返回非0值;失敗,返回0值。參數(shù):nWeight字體厚度常用參數(shù)有:FW_NORMAL、FW_REGULAR和FW_BOLDnCharSet字符集常用參數(shù)有:ANSI_SHARSET、DEFAULT_CHARSET、SYBOL_CHARSET、SHIFTJI
27、S_CHARSET、OEM_CHARSET等nOutPrecision輸出精確度定義。輸出與請(qǐng)求使用的字體的高度、寬度、字符走向、轉(zhuǎn)義和字間距的匹配程度,常用參數(shù)有:OUT_CHARACTER_PRECIS、OUT_STRING_PRECIS、OUT_DEFAULT_PRECIS、OUT_DEVICE_PRECIS等等。nClipPrecision剪取精度定義。如何剪取部分位于剪取區(qū)域之外的字符,常用參數(shù)有:CLIP_CHARACTER_PRECIS、CLIP_DEFAULT_PRECIS、CLIP_MASK。nQuality字體的輸出質(zhì)量定義。GDI怎樣才能將邏輯字體屬性與實(shí)際物理字體匹配起
28、來,常用參數(shù)值:DEFAULT_QUALITY、DRAFT_QUALITY和PROOF_QUALITY。nPitchAndFamily通常是字符間距與字族的組合值,如:DEFAULT_PITCH|FF_DONTCARE下面通過實(shí)例顯示字體對(duì)象的創(chuàng)建和使用。運(yùn)行效果如圖5-5所示:9voidASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahereCFontNewFont;NewFont.CreateFont(65,65,0,0,FW_DONTCARE,true,false,false,DEFAULT_CHARSET,OUT_CHARACTER_P
29、RECIS,CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,黑體);CFont*pOldFont;pOldFont=pDC-SelectObject(&NewFont);pDC-TextOut(10,10,傾斜的黑體字);5.2.4格式化文本W(wǎng)indows系統(tǒng)不參與窗口客戶區(qū)的管理,這就意味著在客戶區(qū)內(nèi)輸出文本,應(yīng)用程序必須管理?yè)Q行,后繼字符的位置等輸出格式。由于文本字符串的間隔不僅取決于由用戶指定的字體,而且取決于目標(biāo)設(shè)備的分辨率,因此在繪制任何文本之前,需要計(jì)算文本坐標(biāo)CDC類提供了如下表所示的文本測(cè)量函數(shù)。表
30、5-4文本測(cè)量函數(shù)函數(shù)說明GetTextExtent當(dāng)選用當(dāng)前嵌入DC中的字體繪圖時(shí),獲得給定字符串將占據(jù)的空間寬度和高度GetTextMetries為當(dāng)前選入DC的字體獲取類型為TEXTMETRIC的數(shù)據(jù),此數(shù)據(jù)結(jié)構(gòu)中包含基本的字體測(cè)量信息字體測(cè)量函數(shù)的使用的場(chǎng)合通常有:1確定后繼文本坐標(biāo)在很多場(chǎng)合單行文本需要分離成多次輸出,即多次調(diào)用TextOut()。例如在藍(lán)色文本的后邊顯示紅色文本,或者是在同一行文本上使用字體。這時(shí)需要計(jì)算下一個(gè)字符串的位置,使用GetTextExtent()函數(shù)可以獲得所選字體中的字符串的寬度和高度,函數(shù)的格式如下:CSizeGetTextExtent(LPCTST
31、RlpszString,intnCount)其中:IpszString是字符串的指針,nCount是所包括的字符數(shù)。返回值CSize是包含兩個(gè)成員的結(jié)構(gòu):ex是字符串的寬度,cy是字符串的高度。下面給出了一個(gè)使用GetTextExtent()函數(shù)的實(shí)例。運(yùn)行效果如圖5-6所示,實(shí)現(xiàn)代碼如程序清單5-9所示。其中GetLength()函數(shù)是CString類的成員函數(shù),返回字符串的長(zhǎng)度。程序清單:在視圖中輸出一行使用兩種顏色的文本voidCExam5View:0nDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:a
32、dddrawcodefornativedatahereintx,y;x=150;y=100;CStringstrHello=Hello;CStringstrVc=VC+!;/輸出第一個(gè)藍(lán)色字符串pDC-SetTextColor(RGB(0,0,255);pDC-TextOut(x,y,strHello);/取得第一個(gè)字符串的像素長(zhǎng)度CSizestrSize=pDC-GetTextExtent(strHello,strHello.GetLength();設(shè)定第二個(gè)字符串的輸出位置X坐標(biāo)x+=strSize.cx;/輸出第二個(gè)綠色字符串pDC-SetTextColor(RGB(0,255,0);p
33、DC-TextOut(x,y,strVc);2確定換行時(shí)文本坐標(biāo)GetTextMetric()函數(shù)用來計(jì)算涉及確定兩行文本之間的間隔。當(dāng)然你可以使用GetTextExtent()函數(shù)的返回值中的字符串的高度來決定兩行文本之間的間隔,但這種方式并不精確。文本中行之間的間隔包括兩部分:字符單元高度和外部行距大小。這兩部分內(nèi)容都包含在TEXTMETRIC數(shù)據(jù)結(jié)構(gòu)中。調(diào)用GetTextMetric()函數(shù)可以獲得當(dāng)前字體的TEXTMETRIC結(jié)構(gòu)的內(nèi)容,并計(jì)算文本行間隔方式如下:TEXTMETRICtm;pDC-GetTextMetrics(&tm);intLineHeight=tm.tmHeight
34、+tm.tmExternalLeading;數(shù)據(jù)類型TEXTMETRIC的定義和圖示如下:typedefstructtagTEXTMETRIC/*tm*/inttmHeight;Internal_-BaselinegtAscentHeightrO;V1F-Width-tDescentOriginTopofthecharactercellCell圖5-字7體結(jié)構(gòu)圖inttmAscent;inttmDescent;inttmInternalLeading;inttmExternalLeading;inttmAveCharWidth;inttmMaxCharWidth;inttmWeight;BYT
35、EtmItalic;BYTEtmUnderlined;BYTEtmStruckOut;BYTEtmFirstChar;BYTEtmLastChar;BYTEtmDefaultChar;BYTEtmBreakChar;BYTEtmPitchAndFamily;BYTEtmCharSet;inttmOverhang;inttmDigitizedAspectX;inttmDigitizedAspectY;TEXTMETRIC;5.2.5文本輸出函數(shù)CDC提供了以下幾個(gè)函數(shù)用于文本輸出:表5-5文本輸出函數(shù)函數(shù)說明TextOut在屏幕的固定位置用當(dāng)前設(shè)定的顏色、字體、對(duì)齊方式輸出文本TabbedTex
36、tOut與TextOut的功能相似,唯一差別是可以為支持制表符而定義一組制表站位置DrawText在一個(gè)區(qū)域中顯示并格式化文本ExtTextOut與TextOut的功能相似,但可以使用該函數(shù)刪去超出矩形的正文,用正文背景填充矩形,調(diào)整字符間隔TextOut()是最常用的文本輸出函數(shù),它的格式:BOOLCDC:TextOut(intx,inty,constCString&str);其中:x,y是輸出位置的坐標(biāo),str是要輸出的文本串。在輸出文本之前,應(yīng)先設(shè)置輸出文本串的顏色、字體及對(duì)齊方式。使用DrawText()函數(shù)可以在一個(gè)指定的區(qū)域中輸出文本,并且可以在這個(gè)區(qū)域內(nèi)進(jìn)行水平和垂直方向的對(duì)齊方
37、式的設(shè)置,還可以在一個(gè)詞中間斷開以適應(yīng)矩形邊界。它的格式如下:intCDC:DrawText(constCString&str,LPRECTlpRect,UINTnFormat);函數(shù)正確執(zhí)行后返回文本行的高度,str是輸出的文本,IpRect是指定矩形輸出區(qū)域,nFormat是格式常量。下面給出了一個(gè)使用DrawText()的實(shí)例。程序清單:在視圖中使用DrawText在一個(gè)矩形區(qū)域中水平垂直居中,輸出藍(lán)色文本的OnDraw函數(shù)voidCExam5View:OnDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO
38、:adddrawcodefornativedataherepDC-SetTextColor(RGB(0,0,255);CRectRect;Rect.SetRect(100,100,300,300);pDC-Rectangle(Rect);pDC-DrawText(thisisasampleofDrawText!,Rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);J執(zhí)行效果如圖5-8所示:圖5-9文本處理實(shí)例程序清單:在視圖中處理文本的OnDraw函數(shù)voidCExam5_2View:OnDraw(CDC*pDC)CExam5_2Doc*pDoc=GetDocum
39、ent();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahereinty;intx;CStringoutstr4;outstr0=第一個(gè)紫紅色的使用系統(tǒng)字體的文本串;outstr1=第二個(gè)黃色黑體文本串;outstr2=第三個(gè)藍(lán)色文本串;outstr3=最后一個(gè)大號(hào)字,加下劃線的斜體文本串;x=0;y=0;/輸出第一行pDC-SetTextColor(RGB(255,0,255);pDC-TextOut(x,y,outstr0);/輸出第二行TEXTMETRICtm;pDC-GetTextMetrics(&tm);y=y+tm.tmHeig
40、ht+100*tm.tmExternalLeading;CFontNewFont1;NewFont1.CreateFont(30,10,0,0,FW_HEAVY,false,false,false,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,黑體);CFont*pOldFont;pOldFont=pDC-SelectObject(&NewFont1);pDC-SetTextColor(RGB(255,255,0);pDC-TextOut(x,y,out
41、str1);/輸出第三個(gè)文本串pDC-GetTextMetrics(&tm);pDC-SetTextColor(RGB(0,0,255);CSizestrSize=pDC-GetTextExtent(outstr1,outstr1.GetLength();x+=strSize.cx;pDC-TextOut(x,y,outstr2);/輸出第四個(gè)文本串pDC-GetTextMetrics(&tm);x=0;y=y+tm.tmHeight+20*tm.tmExternalLeading;CFontNewFont2;NewFont2.CreateFont(30,0,0,0,FW_NORMAL,tru
42、e,true,false,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULTQUALITY,DEFAULT_PITCH|FF_DONTCARE,大號(hào)字);pDC-SelectObject(&NewFont2);pDC-SetTextColor(RGB(155,155,155);pDC-TextOut(x,y,outstr3);pDC-SelectObject(pOldFont);pDC-SelectObject(&NewFont2);pDC-SetTextColor(RGB(155,155,155);pDC-TextOut(x
43、,y,outstr3);pDC-SelectObject(pOldFont);J分析如表5-所6示:表文本屬性格式化字體文本串紅色默認(rèn)字體文本串綠色求下一行位置高度,寬度,粗體,黑體字文本串藍(lán)色求同行字符串尾部位置文本串灰色求下一行位置高度0斜體,下劃線,大號(hào)字請(qǐng)注意pOldFont的使用,在第一次調(diào)用SelectObject()函數(shù),函數(shù)返回老的字體設(shè)置,由CFont對(duì)象指針pOldFont接受,在OnDraw()函數(shù)的最后再使用SelectObject()是恢復(fù)原來的字體設(shè)置。5.3處理繪圖5.3.1簡(jiǎn)單的圖形輸出CDC提供了基本的繪圖操作函數(shù),如畫點(diǎn),畫線,畫圓,畫矩形,畫多邊形等等,簡(jiǎn)
44、單介紹如下1點(diǎn)pDC-SetPixel(CPoint(200,200),RGB(255,0,0);/在200,200的位置畫一個(gè)紅點(diǎn)2線/直線起點(diǎn)的坐標(biāo)為(0,0)/從起點(diǎn)(0,0)到終點(diǎn)(100,100)畫一條直線/畫一個(gè)長(zhǎng)100,寬100的矩形/在矩形內(nèi)畫圓/在矩形內(nèi)畫橢圓pDC-MoveTo(0,0);pDC-LineTo(100,100);pDC-MoveTo(0,100);pDC-LineTo(100,0);3矩形CRectrect(0,0,100,100);pDC-Rectangle(&rect);4圓和橢圓CRectrect(0,0,100,100);pDC-Ellipse(&r
45、ect);CRectrect(0,0,50,100);pDC-Ellipse(&rect);/畫一個(gè)平行四邊形5多邊形CPointpoly4;poly0=CPoint(0,0);poly1=CPoint(50,50);poly2=CPoint(50,100);poly3=CPoint(0,50);pDC-Polygon(poly,4);6其它圖形VC+6簡(jiǎn)明教程 # CDC:PieCDC:ChordCDC:FillRectCDC:Draw3DRectCDC:RoundRect/畫餅圖/畫弦/用指定顏色填充矩形且不畫邊線用于繪制名種3D邊框/畫圓角矩形繪圖函數(shù)的具體的使用方法可以查閱MSDN。5
46、.3.2庫(kù)存對(duì)象不管以CDC類指針形式還是以CDC子類對(duì)象形式獲得設(shè)備上下對(duì)象,系統(tǒng)都默認(rèn)指定了一組繪圖屬性,如表5-7所示。表5-7系統(tǒng)默認(rèn)繪圖屬性繪圖屬性默認(rèn)值改變默認(rèn)值的函數(shù)畫筆一個(gè)像素寬的黑色實(shí)線SelectObject,SelectStockObject畫刷白色的實(shí)心刷SelectObject,SelectStockObject背景顏色白色SetBKColor背景模式OPAQUESetBKMode刷子原點(diǎn)設(shè)備坐標(biāo)(0,0)SetBrushOrg當(dāng)前繪圖位置邏輯坐標(biāo)(0,0)MoveTo混合模式R2COPYPENSetRop2映射模式MMTEXTSetMapMode庫(kù)存對(duì)象是由操作系統(tǒng)
47、維護(hù)的用于繪制屏幕的常用對(duì)象,包括庫(kù)存畫筆、畫刷、字體等。使用SelectStockObject()函數(shù)可以直接選擇庫(kù)存對(duì)象修改系統(tǒng)默認(rèn)值??芍苯舆x用的庫(kù)存對(duì)象如表5-8所示。表5-8系統(tǒng)默認(rèn)繪圖屬性GDI分類庫(kù)存對(duì)象值FontsANSI_FIXED_FONTANSI_VAR_FONTDEVICE_DEFAULT_FONTOEM_FIXED_FONTSYSTEMFONTPensBLACK_PENWHITE_PENNULLPENVC+6簡(jiǎn)明教程VC+6簡(jiǎn)明教程BrushsBLACK_BRUSHDKGRAY_BRUSHGRAY_BRUSHHOLLOW_BRUSHLTGRAY_BRUSHNULL_B
48、RUSHWHITEBRUSH下面的實(shí)例演示了如何使用庫(kù)存對(duì)象:程序清單:在視圖中選用畫筆和畫刷庫(kù)存對(duì)象畫圖的OnDraw函數(shù)voidCExam5View:0nDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahereCRectrect;rect.SetRect(CPoint(0,0),CPoint(200,200);pDC-SelectStockObject(WHITE_PEN);/選用白色畫筆pDC-SeIectStockObject(GRAY_BRUSH);選
49、用灰色畫刷pDC-Rectangle(rect);pDC-MoveTo(0,0);pDC-LineTo(200,200);pDC-MoveTo(0,200);pDC-LineTo(200,0);J演示效果如圖5-10所示。VC+6簡(jiǎn)明教程第5章圖形與文本輸出 5.3.3設(shè)置繪圖坐標(biāo)系首先要介紹邏輯坐標(biāo)和設(shè)備坐標(biāo)的概念,一般地說,如果要把一幅大小為400mmX800mm的圖畫顯示在500像素X200像素的windows窗口中,前者稱為邏輯坐標(biāo),后者稱為設(shè)備坐標(biāo)。它們的關(guān)系如圖5-11所示:設(shè)備坐標(biāo)圖5-1邏1輯坐標(biāo)與設(shè)備坐標(biāo)設(shè)備坐標(biāo)系的原點(diǎn)總是在窗口的左上角,它的單位是像素。而邏輯坐標(biāo)系的單位有
50、多種,可以是像素,也可以是厘米、毫米、英寸等,邏輯坐標(biāo)按映像模式可分為三大類,一共八種模式:(1M)M_TEXT默認(rèn)的映像模式,原點(diǎn)在左上角,向右x增加,向下y增加。固定比例的映射模式向右x增加,向下y減少??勺儽壤挠成淠J皆试S改變比例因子和原點(diǎn)。在用戶改變窗口大小時(shí),繪制的內(nèi)容會(huì)隨之改變。如果改變一個(gè)軸的比例,則所繪的圖像也會(huì)在其它軸上相應(yīng)的改變。表5-9映像模式類別映像模式名稱邏輯單位默認(rèn)模式MMTEXT像素固定比例的映射模式MMLOMETRIC0.1mmMMHIMETRIC0.01mmMMLOENGLISHO.OlinchMMHIENGLISH0.001inchMMTWIPS1/144
51、0inch可變比例的映射模式MMISOTROPIC可調(diào)整(x=y)MMANISOTROPIC可調(diào)整(x!=y)要準(zhǔn)確的確定繪圖效果,要正確地設(shè)置映像模式,可以使用CDC:SetMapMode()函數(shù)更改映像模式。例如:CClientDCdc;intOldMode=dc.SetMapMode(MM_LOMETRIC);并可以使用CDC:SetViewportOrg()函數(shù)和CDC:SetWindowOrg函數(shù)移動(dòng)邏輯坐標(biāo)系的原點(diǎn)。例如,下面程序語(yǔ)句段將坐標(biāo)系的原點(diǎn)移動(dòng)到客戶區(qū)中央:CRectrect;GetClientRect(rect);pDC-SetViewportOrg(rect.widt
52、h()/2,rect.height()/2);現(xiàn)在所面臨的問題是如何區(qū)分使用邏輯坐標(biāo)和設(shè)備坐標(biāo)的場(chǎng)合。一般來說,MFC的CDC繪圖函數(shù)都使用邏輯坐標(biāo)為參數(shù);CWnd的成員函數(shù)一般使用設(shè)備坐標(biāo)為參數(shù),如返回鼠標(biāo)位置作為屏幕位置測(cè)試時(shí),一般也是使用設(shè)備坐標(biāo)。設(shè)備坐標(biāo)系統(tǒng)分為三類:工作區(qū)(Viewport)坐標(biāo)系統(tǒng)它以窗口客戶區(qū)左上角為原點(diǎn)(0,0),主要用于窗口客戶區(qū)繪圖輸出以及處理窗口的一些消息。鼠標(biāo)消息傳給框架的位置消息參數(shù)以及CDC一些用于繪圖的成員都是使用工作區(qū)坐標(biāo)。窗口(Windows)坐標(biāo)系統(tǒng)它以窗口左上角為坐標(biāo)原點(diǎn)(0,0),它包含窗口控制菜單、標(biāo)題欄等內(nèi)容。一般情況下很少在窗口標(biāo)題
53、欄上繪圖,因此這種坐標(biāo)系統(tǒng)很少使用。屏幕(Screen)坐標(biāo)系統(tǒng)它以屏幕左上角為原點(diǎn)(0,0)。當(dāng)以CreateDC()或GetDC()取得設(shè)備上下文使用的是屏幕坐標(biāo)系。一般設(shè)置和取得光標(biāo)的位置的函數(shù)SetCursorPos()和GetCursorPos()是使用屏幕坐標(biāo);彈出式菜單使用屏幕坐標(biāo);CreateWindow()、MoveWindow()等函數(shù)用于設(shè)置窗口相對(duì)于屏幕的位置,使用的也是屏幕坐標(biāo)系統(tǒng)。MFC使用ClientToScreen()和ScreenToClient()兩個(gè)函數(shù),用于完成工作區(qū)坐標(biāo)和屏幕坐標(biāo)之間的轉(zhuǎn)換工作。邏輯坐標(biāo)和設(shè)備坐標(biāo)的轉(zhuǎn)換是經(jīng)常發(fā)生的事情,例如,用戶在視圖
54、滾動(dòng)后單擊鼠標(biāo),會(huì)得到鼠標(biāo)的設(shè)備坐標(biāo)。如果要保存這個(gè)數(shù)據(jù)到文檔,則需要把它轉(zhuǎn)化為邏輯坐標(biāo)。相反,當(dāng)調(diào)用MFC繪圖函數(shù)繪圖時(shí),Windows自動(dòng)將邏輯坐標(biāo)轉(zhuǎn)換成設(shè)備坐標(biāo)再繪圖。CDC也提供了成員函數(shù)LPToDP()和DPToLP()完成兩種坐標(biāo)之間的轉(zhuǎn)換。5.3.5節(jié)中例5-3演示了不同映像模式的使用。5.3.4創(chuàng)建和使用自定義畫筆和畫刷創(chuàng)建CPen的方法有兩種:定義時(shí)直接創(chuàng)建CPenMypen(PS_SOLD,2,RGB(255.0.0);定義CPen對(duì)象,再調(diào)用CreatePen()函數(shù)CPenpen;pen.CreatePen(PS_SOLD,2,RGB(255,0,0);其中第一個(gè)參數(shù)是
55、筆的風(fēng)格,可選值有:PS_SOLD(實(shí)線),PS_DOT(虛線),PS_NULL(空畫筆)。第二個(gè)參數(shù)是線的寬度,第三個(gè)參數(shù)是線的顏色。表5-1畫0筆樣式及說明樣式說明樣式說明PSDASH虛線PSINSIDEFTAME實(shí)線(邊框線)PSDASHDOT點(diǎn)劃線PSNULL無PSDASHDOTDOT雙點(diǎn)劃線PSSOLID實(shí)線PSDOT點(diǎn)線創(chuàng)建畫刷的方法有下面幾種:(1)創(chuàng)建實(shí)心畫刷CreateSolidBrush()函數(shù)CBrushbs;bs.CreateSoIidBrush(RGB(255,0,0);創(chuàng)建一個(gè)紅色的實(shí)心畫刷表5-1畫1刷的樣式及說明樣式說明樣式說明BLACKBRUSH黑色畫刷LTG
56、RAYBRUSH亮灰色畫刷DKGRAYBRUSH深灰色畫刷NULLBRUSH空畫刷GRAYBRUSH灰色畫刷WHITEBRUSH白畫刷HOLLOWBRUSH空心畫刷創(chuàng)建帶陰影的畫刷CreateHatchBrush()函數(shù)bs.CreateHatchBrush(HS_CROSS,RGB(255,0,0);創(chuàng)建一個(gè)十字線陰影的紅色畫刷表5-1陰2影畫刷樣式及說明樣式說明樣式說明HSBDIAGONAL45度HSCROSS+HSDIAGCROSS45度叉線HSHORIZONTALHSFDIAGONAL45度/HSVERTICAL|(3)創(chuàng)建位圖畫刷CreatePatternBrush()函數(shù)CBitM
57、apbmp;bmp.LoadBitMap(IDB_MYBITMAP);CBrushbs;bs.CreatePatternBrush(&bmp);使用自定義畫筆和畫刷的方式和使用自定義字體的方法類似,創(chuàng)建自定義對(duì)象后,調(diào)用SelectObject()函數(shù)將對(duì)象選入設(shè)備上下文即可。下面的示例中演示了使用和創(chuàng)建畫筆和畫刷。首先通過使用創(chuàng)建的藍(lán)色,寬度為5的畫筆畫一個(gè)圖形的邊界,然后用當(dāng)前的刷子填充這個(gè)圖形來創(chuàng)建一個(gè)填充圖形。共有三個(gè)填充圖形:第一個(gè)是用深藍(lán)色實(shí)心畫刷填充的帶圓角的矩形,第二個(gè)是用亮灰畫刷填充的餅圖,第三個(gè)是用陰影風(fēng)格的畫刷填充的橢圓。程序清單:在視圖中繪制圖形的OnDraw函數(shù)voi
58、dCExam5View:0nDraw(CDC*pDC)CExam5Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedataherepDC-SetMapMode(MM_ANISOTROPIC);/設(shè)置映像模式CPenNewPen,OldPen;/創(chuàng)建藍(lán)色畫筆NewPen.CreatePen(PS_SOLID,5,RGB(0,0,255);pDC-SelectObject(&NewPen);/將畫筆選入設(shè)備上下文CBrushNewBrush1,NewBrush2;/創(chuàng)建深藍(lán)色實(shí)心畫刷NewBrush1.Crea
59、teSolidBrush(RGB(0,0,128);pDC-SelectObject(&NewBrush1);/將畫刷選入設(shè)備上下文pDC-RoundRect(200,100,330,200,15,15);/繪制圓角矩形pDC-SelectStockObject(LTGRAY_BRUSH);/將庫(kù)存對(duì)象亮灰畫刷選入設(shè)備上下文pDC-Pie(350,50,420,150,360,50,400,50);/繪制餅圖NewBrush2.CreateHatchBrush(HS_DIAGCROSS,RGB(125,125,125);/創(chuàng)建陰影畫刷pDC-SelectObject(NewBrush2);/繪
60、制橢圓pDC-Ellipse(50,50,150,150);J回岡運(yùn)行效果如圖5-12所示。壓無標(biāo)題-ExamS文件(E)編輯(E)查看匹)幫助迫)535圖形輸出編程實(shí)例就緒數(shù)字【例5-3】設(shè)置映像和映像模式。編寫程序Exam5_3,初始階段按模式MMTEXT繪圖,在一個(gè)圓角矩形內(nèi)內(nèi)嵌一個(gè)橢圓,圓角矩形以黑色填充,橢圓以白色填充。用戶通過單擊鼠標(biāo)來改變映像模式,單擊鼠標(biāo)左鍵時(shí),設(shè)置映像模式為MM_ISOTROPIC,并調(diào)用InvalidateRect函數(shù)刷新用戶區(qū),在用戶單擊鼠標(biāo)右鍵時(shí),設(shè)置映像模式為MM_ANISOTROPIC,同時(shí)刷新用戶區(qū)。運(yùn)行效果如圖所示VC+6簡(jiǎn)明教程第5章圖形與文本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 官方認(rèn)證合同標(biāo)準(zhǔn)文本參考集
- 2025年創(chuàng)業(yè)合伙企業(yè)投資協(xié)議模板
- 2025年雙邊技術(shù)交流與合作協(xié)議范例
- 2025年醫(yī)療機(jī)構(gòu)醫(yī)療器械監(jiān)管維護(hù)管理協(xié)議
- 2025年親屬間房產(chǎn)轉(zhuǎn)讓合同文本
- 2025年住宅建設(shè)安全管理合同
- 2025年經(jīng)濟(jì)型共享汽車短期租賃合同
- 2025年城市發(fā)展策劃配套補(bǔ)償協(xié)議樣本
- 2025版標(biāo)準(zhǔn)共有財(cái)產(chǎn)分割協(xié)議策劃案
- 2025年個(gè)人住宅建設(shè)合同權(quán)益轉(zhuǎn)讓合同
- 哈佛大學(xué)住房研究聯(lián)合中心:2024年美國(guó)房屋租賃報(bào)告
- 農(nóng)商銀行貴金屬分析報(bào)告
- 人教版英語(yǔ)八年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)及教學(xué)反思
- 軟件確認(rèn)報(bào)告-模板
- 馬克思主義的誕生(何)
- 《紅樓夢(mèng)第五回》課件
- 供應(yīng)鏈管理 課件 項(xiàng)目一 供應(yīng)鏈及供應(yīng)鏈管理認(rèn)知
- 2023年全國(guó)醫(yī)學(xué)博士外語(yǔ)統(tǒng)一考試(英語(yǔ))
- 2024年中儲(chǔ)棉總公司招聘筆試參考題庫(kù)含答案解析
- 微整培訓(xùn)課件
- TQRDC供應(yīng)商評(píng)價(jià)標(biāo)準(zhǔn)-0314
評(píng)論
0/150
提交評(píng)論