版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)(論文)外文資料翻譯</p><p> 外文出處: Advanced MFC Programming </p><p> 附 件: A.外文翻譯 -原文部分 </p><p> B.外文翻譯 -譯文部分 </p&g
2、t;<p> 附錄A.外文翻譯 -原文部分(寫明出處)</p><p> Advanced MFC Programming Chapter 8:DC, Pen, Brush and Palette </p><p> 8.0 Device Context & GDI Objects</p><p> Starting from th
3、is chapter, we are going to study topics on GDI (Graphics Device Interface) programming.</p><p><b> Situation</b></p><p> GDI is a standard interface between the programmer and phy
4、sical devices. It provides many functions that can be used to output various objects to the hardware (e.g. a display or a printer). GDI is very important because, as a programmer, we may want our applications to be compa
5、tible with as many peripherals as possible. For example, almost every application need to write to display, and many applications also support printer output. The problem here is that since a program should be able to ru
6、n </p><p> The solution is to introduce GDI between the hardware and the programmer. Because it is a standard interface, the programmer doesn’t have to have any knowledge on the hardware in order to operate
7、 it. As long as the hardware supports standard GDI, the application should be able to execute correctly.</p><p> Device Context</p><p> As a programmer, we do not output directly to hardware s
8、uch as display or printer. Instead, we output to an object that will further realize our intention. This object is called device context (DC), it is a Windows object that contains the detailed information about hardware.
9、 When we call a standard GDI function, the DC implements it according to hardware attributes and configuration. </p><p> Suppose we want to put a pixel at specific logical coordinates on the display. If we
10、do not have GDI, we need the following information of the display in order to implement this simple operation:</p><p> 1.Video memory configuration. We need this information in order to convert logical coor
11、dinates to physical buffer address. </p><p> 2.Device type. If the device is a palette device, we need to convert a RGB combination to an index to the color table and use it to specify a color. If the devic
12、e is a non-palette device, we can use the RGB combination directly to specify a color.</p><p> Because the actual devices are different form one type to another, it is impossible for us to gather enough inf
13、ormation to support all the devices in the world. So instead of handling it by the programmer, GDI functions let us use logical coordinates and RGB color directly, the conversion will be implemented by the device driver.
14、</p><p> GDI Objects</p><p> In Windows?, GDI objects are tools that can be used together with device context to perform various drawings. They are designed for the convenience of programmers.
15、 The following is a list of some commonly used GDI objects:</p><p> The above GDI objects, along with device context, are all managed through handles. We can use the handle of an object to identify or acces
16、s it. Besides the handles, every GDI object has a corresponding MFC class. The following is a list of their handle types and classes:</p><p> Object Handle Type MFC Class</p><p> Obtaining DC&
17、lt;/p><p> As a programmer, most of the time we need to output to a specific window rather than the whole</p><p> screen. A DC can be obtained from any window in the system, and can be used to ca
18、ll GDI functions.</p><p> There are many ways to obtain DC from a window, the following is an incomplete list:</p><p> 1.Call function CWnd::GetDC(). This function will return a CDC type point
19、er that can be used to perform drawing operations within the window.</p><p> 2.Declare CClientDC type variable and pass a CWnd type pointer to its constructor. Class CClientDC is designed to perform drawing
20、 operations in the client area of a window.</p><p> 3.Declare CWndowDC type variable and pass a CWnd type pointer to its constructor. Class CWindowDC is designed to perform drawing operations in the whole w
21、indow (including client area and non-client area).</p><p> 4. In MFC, certain member functions are designed to update application’s interface (i.e. CView::</p><p> OnDraw (…)). These function
22、s will automatically be called when a window needs to be updated. For this kind of functions, the device context will be passed through one of function’s parameters.</p><p> Using DC with GDI Objects</p&
23、gt;<p> Before calling any function to perform drawing, we must make sure that an appropriate GDI object is being selected by the DC. For example, if we want to draw a red line with a width of 2, we must select a
24、 solid red pen whose width is 2. The following steps show how to use DC together with GDI objects:</p><p> 1.Obtain or create a DC that can be used to perform drawing operations on the target window.</p&
25、gt;<p> 2. Create or obtain an appropriate GDI (pen, brush, font…) object.</p><p> 3. Select the GDI object into the DC, use a pointer to store the old GDI object.</p><p> 4. Perform d
26、rawing operations.</p><p> 5. Select the old GDI object into the DC, this will select the new GDI object out of the DC. Destroy the GDI object if necessary (If the GDI object was created in step 2 and will
27、not be used by</p><p> other DCs from now on).</p><p> The following sections will discuss how to use specific GDI objects to draw a kind of graphic</p><p> Objects(ie. Rectangle
28、)</p><p><b> Rectangle</b></p><p> It is easy to implement rectangle drawing after we understand the previous knowledge. To draw a rectangle, we need to call function CDC::Rentangl
29、e(…) and pass a CRect type value to it. The rectangle’s border will be drawn using current pen selected by the DC, and its interior will be filled with the currently selected brush. </p><p> We can declare
30、a brush type variable using class CBrush, and create various kind of brushes by calling any of the following functions: CBrush::CreateSolidBrush(…), CBrush::CreateHatchBrush(…), CBrush::CreatePatternBrush(…).. In Windows
31、?, there are severalpre-implemented default GDI objects that can be retrieved and used at any time. These objects include pens, brushes, fonts, etc. We can get any object by calling ::GetStockObject(…) API function. Ther
32、e turned value is a handle that could be atta</p><p> When a rectangle is not finally fixed, we may want to draw only its border and leave its interior</p><p> unpainted. To implement this, we
33、 can select a NULL (hollow) brush into the device context. A hollow</p><p> brush can be obtained by calling function ::GetStockObject(…) using HOLLOW_BTRUSH or NULL_BRUSH flag.</p><p> With t
34、he above implementation, the application will be able to let the user draw rectangles. With only minor modifications we can let the application draw ellipses. To draw an ellipse, we need to call function CDC::Ellipse(…)
35、and pass a CRect type value to it. This is exactly the same with calling function CDC::Rectangle(…). So in the previous sample, if we change all the “Rectangle” keywords to “Ellipse”, the application will be implemented
36、to draw ellipses instead of rectangles.</p><p><b> Font</b></p><p> Font is another very important GDI object, every application deals with font. Usually a systemcontains some defa
37、ult fonts that can be used by all the applications. Besides these default fonts, we can also install fonts provided by the thirty party. For word processing applications, using font is a complex issue. There are many thi
38、ngs we need to take care. For example, when creating this type of applications, we need to think about the following issues: how to display a font with different styles</p><p> When we implement a font dial
39、og box, all the available fonts contained in the system will be listed in it. We can select font size, font name, special styles, and text color.Like other GDI objects such as pen and brush, we need to create font with s
40、pecific styles and select it into a DC in order to use it for outputting text. In MFC, the class that can be used to implement font is CFont. To create a font, we can call either CFont::CreateFont(…) or CFont::CreateFont
41、Indirect(…), whose formats are </p><p> BOOL CFont::CreateFont ( </p><p> int nHeight, int nWidth,</p><p> int nEscapement, int nOrientation, int nWeight,</p><p> B
42、YTE bItalic, BYTE bUnderline, BYTE cStrikeOut,</p><p> BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality,</p><p> BYTE nPitchAndFamily, LPCTSTR lpszFacename );</p>&
43、lt;p> BOOL CFont::CreateFontIndirect(const LOGFONT *lpLogFont);</p><p> The first function has many parameters and the second one needs only a LOGFONT type pointer. The results of the two member functio
44、ns are exactly the same, every style we need to specify for a font in the first function has a corresponding member in structure LOGFONT:</p><p> typedef struct tagLOGFONT{</p><p> LONG lfHeig
45、ht;</p><p> LONG lfWidth;</p><p> LONG lfEscapement;</p><p> LONG lfOrientation;</p><p> LONG lfWeight;</p><p> BYTE lfItalic;</p><p> B
46、YTE lfUnderline;</p><p> BYTE lfStrikeOut;</p><p> BYTE lfCharSet;</p><p> BYTE lfOutPrecision;</p><p> BYTE lfClipPrecision;</p><p> BYTE lfQuality;&
47、lt;/p><p> BYTE lfPitchAndFamily;</p><p> TCHAR lfFaceName[LF_FACESIZE];</p><p> } LOGFONT;</p><p> Here, member lfFaceName specifies the font name; lfHeight and lfWid
48、th specify font size; lfWeight,lfItalic, lfUnderline and lfStrikeOut specify font styles. Besides these styles, there are two other styles that can be specified: lfEscapement and lfOrientation. If they are non-zero, the
49、text will have an angle with respect to the horizontal border of the window when it is displayed . To display text this way, we must assign the angle to both lfEscapement and lfOrientation when creating the font, </p&
50、gt;<p><b> Summary:</b></p><p> 1. Before drawing anything to a window, we must first obtain its device context. There are many ways of obtaining a window’s DC (Calling function CWnd::Ge
51、tDC(), declaring CClientDC or CWindowDC type variables, etc.).</p><p> 2. A client DC can be used to paint a window’s client area, and a window DC can be used to paint the</p><p> whole window
52、 (client and non-client area).</p><p> 3. Pen can be used to draw line, the border of rectangle, polygon, ellipse, etc. A pen can have different styles: solid pen, dashed pen, etc.</p><p> 4.
53、Brush can be used to fill the interior of rectangle, polygon, ellipse, etc. A brush can have different</p><p> patterns: solid, hatched, etc.</p><p> 5. We can use an 8?8 image to create patte
54、rn brush.</p><p> 6.On a palette device, there are two color approaching methods: dithering and using the nearest color.</p><p> 7.The abilities of a device can be retrieved by calling functio
55、n CDC::GetDeviceCaps().</p><p> 附錄B. 外文翻譯 -譯文部分</p><p> 節(jié)選自《Advanced MFC Programming》第八章DC, Pen, Brush and Palette</p><p> 8.0節(jié):設(shè)備環(huán)境DC 及 圖形設(shè)備接口(GDI)對(duì)象</p><p> 從這一章開
56、始,我們將要學(xué)習(xí)圖形設(shè)備接口GDI編程。</p><p><b> 概述</b></p><p> 圖形設(shè)備接口(GDI)是在程序員和物理設(shè)備之間的一個(gè)標(biāo)準(zhǔn)的接口。它提供了許多函數(shù),調(diào)用這些函數(shù)可以將圖形繪制在硬件(如顯示器或打印機(jī))上。可見圖形設(shè)備接口GDI 非常重要,因?yàn)樽鳛橐粋€(gè)程序員,我們也許需要應(yīng)用程序能適用于盡可能多的外圍設(shè)備。舉例來(lái)說(shuō),幾乎每個(gè)應(yīng)用軟件
57、都需要在顯示器顯示數(shù)氣,而且同樣多數(shù)應(yīng)用軟件也需要支持打印機(jī)輸出?,F(xiàn)在問(wèn)題出現(xiàn)在這里:由于一個(gè)應(yīng)用程序應(yīng)該能支持不同的設(shè)備,而讓程序員知曉每一個(gè)外圍設(shè)備的細(xì)節(jié)并且事先寫代碼支持它,這幾乎是一件不可能的事。</p><p> 解決方案是在設(shè)備和程序員之間引入圖形設(shè)備接口GDI,它是一個(gè)標(biāo)準(zhǔn)的接口,有了它程序員可以不需要有任何的硬件設(shè)備知識(shí)就能實(shí)現(xiàn)對(duì)硬件的操作(輸出)。只要硬件設(shè)備支持標(biāo)準(zhǔn)的圖形設(shè)備接口GDI,應(yīng)用
58、程序就能正確的執(zhí)行。</p><p><b> 設(shè)備環(huán)境(DC)</b></p><p> 作為一個(gè)程序員,我們不需要直接輸出(應(yīng)用程序的輸出)到硬件設(shè)備諸如:顯示器或打印機(jī)。而是輸出到一個(gè)虛擬邏輯設(shè)備,由它來(lái)實(shí)現(xiàn)我們對(duì)物理設(shè)備輸出的意圖。這個(gè)虛擬邏輯設(shè)備就是設(shè)備環(huán)境DC,它是一個(gè)Windows數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)包含向有關(guān)設(shè)備輸出所需的信息。當(dāng)我們調(diào)用一個(gè)標(biāo)準(zhǔn)的GD
59、I 函數(shù)時(shí),設(shè)備環(huán)境依照物理設(shè)備的屬性和配置來(lái)實(shí)現(xiàn)對(duì)其的操作。 </p><p> 假如我們想要輸出一個(gè)像素到顯示的一個(gè)特定的坐標(biāo),如果我們沒有圖形設(shè)備接口GDI,為了實(shí)現(xiàn)這個(gè)簡(jiǎn)單的操作,我們需要下面的顯示器信息。</p><p> 視頻設(shè)備存儲(chǔ)配置信息。我們需要這些信息把邏輯坐標(biāo)轉(zhuǎn)化為物理緩存地址。</p><p> 設(shè)備類型。如果是一個(gè)調(diào)色板設(shè)備,我們需要
60、把一個(gè) RGB 組合索引到一個(gè)顏色表,用顏色表來(lái)表示一個(gè)特定的顏色。而對(duì)于非調(diào)色板設(shè)備,我們能直接用RGB組合表示某種顏色。</p><p> 由于現(xiàn)實(shí)世界中的設(shè)備有多種多樣,獲得足夠的信息以支持所有的設(shè)備對(duì)我們來(lái)說(shuō)是不可能的。而由GDI函數(shù)取代由程序員處理物理設(shè)備輸出,它讓我們直接使用邏輯坐標(biāo)和RGB組合,從而轉(zhuǎn)換工作交給設(shè)備驅(qū)動(dòng)來(lái)完成。</p><p> 圖形設(shè)備接口(GDI)對(duì)象
61、</p><p> 在Windows中,圖形設(shè)備接口(GDI)對(duì)象是和設(shè)備環(huán)境一起實(shí)現(xiàn)繪圖的工具。有了這些工具極大的方便了程序員。下面是一些常用的圖形設(shè)備接口(GDI)對(duì)象列表:</p><p> 以上的圖形設(shè)備接口(GDI)對(duì)象與設(shè)備環(huán)境一起,都是通過(guò)句柄來(lái)處理(實(shí)現(xiàn))。我們可以使用對(duì)象的句柄去定義和訪問(wèn)對(duì)象。除句柄外,每個(gè)GDI對(duì)象還有一個(gè)相應(yīng)的MFC類,以下是句柄類型及相應(yīng)的MF
62、C類列表:</p><p><b> 獲取設(shè)備環(huán)境</b></p><p> 作為一個(gè)程序員,我們大多數(shù)時(shí)間的工作是要輸出(數(shù)據(jù))到一個(gè)特定的窗口,而不是整個(gè)顯示器的銀屏。因些就必須能系統(tǒng)中的任何窗口都可以獲得設(shè)備環(huán)境,并且能用于調(diào)GDI函數(shù)。有許多方法可以從一個(gè)窗口獲得設(shè)備環(huán)境。下面是其中一些方法的列表:</p><p> 調(diào)用函數(shù) C
63、Wnd::GetDC 。這個(gè)函數(shù)將返回一個(gè)CDC類指針,這個(gè)指針可用于在窗口中實(shí)現(xiàn)對(duì)圖形的操作(輸出)。</p><p> 聲明 CClientDC類型變量,并且傳遞一個(gè)CWnd類型指針給它的構(gòu)造函數(shù)。</p><p> 類CClientDC是被設(shè)計(jì)用來(lái)實(shí)現(xiàn)窗口中客戶區(qū)域的圖形操作。</p><p> 聲明CWndowDC類型變量,并且傳遞一個(gè)CWnd類型指針
64、給它的構(gòu)造函數(shù)。</p><p> 類CWndowDC被設(shè)計(jì)用來(lái)實(shí)現(xiàn)整個(gè)窗口區(qū)域的圖形操作(包括客戶區(qū)域和非客戶區(qū)域)。</p><p> 在MFC中,某些成員函數(shù)是設(shè)計(jì)用來(lái)更新應(yīng)用程序的界面(例如:Cview::OnDraw)。當(dāng)一個(gè)窗口需要更新的時(shí)候,這些函數(shù)會(huì)被自動(dòng)調(diào)用。對(duì)于這類函數(shù),設(shè)備環(huán)境會(huì)通過(guò)函數(shù)的參數(shù)來(lái)傳遞。</p><p> 利用GDI對(duì)象使用
65、設(shè)備環(huán)境</p><p> 在調(diào)用任何函數(shù)實(shí)現(xiàn)圖形繪制之前,我們必須確保相應(yīng)的GDI對(duì)象被設(shè)備環(huán)境所選擇。舉個(gè)例子來(lái)說(shuō),如果我們想要畫一條寬度為2,顏色為紅色的直線。我們必須選定一個(gè)紅色實(shí)線的畫筆并且它的寬度為2.</p><p> 下面怎樣利用GDI對(duì)象使用設(shè)備環(huán)境的步驟:</p><p> 獲取或生成一個(gè)設(shè)備環(huán)境,它用來(lái)實(shí)施在目標(biāo)窗口上繪圖的操作。<
66、/p><p> 獲取或生成一個(gè)相應(yīng)的圖形設(shè)備接口GDI(畫筆,畫刷,字體等等)對(duì)象。</p><p> 將圖形設(shè)備接口(GDI)對(duì)象選入當(dāng)前設(shè)備環(huán)境,(選擇成功的話)將返回一個(gè)以前圖形設(shè)備接口(GDI)對(duì)象的指針。</p><p><b> 執(zhí)行繪圖操作。</b></p><p> 繪圖完成后,應(yīng)當(dāng)恢復(fù)以前設(shè)備環(huán)境的
67、圖形設(shè)備接口GDI對(duì)象。</p><p> 接下來(lái)我們來(lái)討論怎樣用一個(gè)特定的GDI對(duì)象來(lái)繪制一個(gè)圖形如:長(zhǎng)方形。</p><p><b> 繪制長(zhǎng)方形</b></p><p> 在我們懂得前面的知道后是很容易實(shí)現(xiàn)長(zhǎng)方形繪制的。為了畫一個(gè)長(zhǎng)方形,我們需要調(diào)用函數(shù)CDC::Rentangle(…)并且傳遞一個(gè)CRect類型的值給它。長(zhǎng)方形的邊
68、可以通過(guò)設(shè)備環(huán)境所選的畫筆來(lái)繪制,填允可以當(dāng)前選擇的畫刷來(lái)實(shí)現(xiàn)。</p><p> 我們可以用類Cbrush來(lái)聲明一個(gè)畫刷類型,并且可以下面的函數(shù)產(chǎn)生各種類型的畫刷,這些函數(shù)有:CBrush::CreateSolidBrush(…), CBrush::CreateHatchBrush(…),CBrush::CreatePatternBrush(…),在windows程序中,有各種事先實(shí)現(xiàn)好了的(缺省的 )GDI
69、對(duì)象可以任何時(shí)候利用,這些對(duì)象包括畫筆,畫刷,字體,等??梢酝ㄟ^(guò)調(diào)用::GetStockObject(…) API函數(shù)來(lái)得到這些對(duì)象,它返回一個(gè)相應(yīng)類型的GDI的句柄。用它來(lái)繪制相應(yīng)的圖形。</p><p> 在一個(gè)長(zhǎng)方形還沒有最終完成時(shí),也許我們僅僅想要有邊緣內(nèi)部沒有填充,可以選擇一個(gè)中空畫刷(NULL畫刷)來(lái)實(shí)現(xiàn)它。NULL畫刷可以通過(guò)調(diào)用::GetStockObject(…) 使用HOLLOW_BTRUS
70、H 或NULL_BURSH 標(biāo)記。</p><p> 在一系列工作完成之后,就用程序可以讓用戶繪制出長(zhǎng)方形。同樣的道理,只要作小小的修改我們就可是繪制出一個(gè)橢圓,為了繪制橢圓,我們需要調(diào)用函數(shù)CDC::Ellipse(…) 并且傳遞一個(gè)CRect類型的值給它。和前面的調(diào)用函數(shù)CDC::Rentangle(…)完全相同,如果我們改變所有的“Rectangle”關(guān)鍵字變?yōu)椤癊llipse”,應(yīng)用程序就可以代替繪制長(zhǎng)
71、方形而實(shí)現(xiàn)繪制橢圓。</p><p><b> 字體</b></p><p> 字體是另一項(xiàng)非常重要的GDI對(duì)象,每一個(gè)應(yīng)用程序涉及的字體。通常系統(tǒng)包含一些默認(rèn)的字體,可用于所有應(yīng)用程序。除了這些默認(rèn)的字體,我們也可以安裝的字體所提供的30種類。對(duì)于文書處理的軟件,使用的字體是一個(gè)復(fù)雜的問(wèn)題。有很多事情我們需要照顧。舉例來(lái)說(shuō),當(dāng)創(chuàng)建這種類型的程序時(shí),我們需要思考下
72、列問(wèn)題:如何顯示不同風(fēng)格的字體;如何改變文本對(duì)齊;如何添加特殊效果字符。</p><p> 當(dāng)我們應(yīng)用一個(gè)字體對(duì)話框,所有可用的字體都會(huì)在上面列出。我們可以選擇字體大小,字體名稱,特殊的風(fēng)格,和文字顏色。 像其他的GDI對(duì)象一樣,例如筆和刷子,我們需要?jiǎng)?chuàng)造字體的具體樣式并且把它選入設(shè)備環(huán)境,以便用它來(lái)輸出文本。在MFC中,用CFont來(lái)創(chuàng)建一個(gè)字體,我們可以調(diào)用CFont::createfont(…)或cfon
73、t::createfontindirect(…)其格式列出如下:</p><p> BOOL CFont::CreateFont(</p><p> int nHeight, int nWidth,int nEscapement, int nOrientation, int nWeight,</p><p> BYTE bItalic, BYTE bUnder
74、line, BYTE cStrikeOut,BYTE nCharSet, BYTE nOutPrecision,</p><p> BYTE nClipPrecision, BYTE nQuality,BYTE nPitchAndFamily, LPCTSTR lpszFacename );</p><p> BOOL CFont::CreateFontIndirect( const
75、LOGFONT *lpLogFont );</p><p> 第一個(gè)函數(shù)有許多參數(shù)和第二個(gè)函數(shù)只需要一logfont類型的指針。兩個(gè)成員函數(shù)的運(yùn)行結(jié)果是完全一樣的,在第一個(gè)函數(shù)中一種字體需要我們指定每個(gè)風(fēng)格,它對(duì)應(yīng)結(jié)構(gòu)一個(gè)LOGFONT結(jié)構(gòu)體:typedef struct tagLOGFONT{</p><p> LONG lfHeight;</p><p>
76、 LONG lfWidth;</p><p> LONG lfEscapement;</p><p> LONG lfOrientation;</p><p> LONG lfWeight;</p><p> BYTE lfItalic;</p><p> BYTE lfUnderline;</p>
77、;<p> BYTE lfStrikeOut;</p><p> BYTE lfCharSet;</p><p> BYTE lfOutPrecision;</p><p> BYTE lfClipPrecision;</p><p> BYTE lfPitchAndFamily;</p><p&g
78、t; TCHAR lfFaceName[LF_FACESIZE];</p><p> } LOGFONT;</p><p> 在這里,成員lffacename指定字體名稱; lfheight和lfwidth指定的字體大小; lfweight , lfitalic , lfunderline和lfstrikeout指定的字體樣式。除了這些風(fēng)格,還有其他兩個(gè)各種樣式,可指定: lfesc
79、apement和lforientation 。如果他們不為零,在文本以這種方式顯示時(shí)將有對(duì)于橫向邊界的一個(gè)角度,在有這樣的效果我們?cè)趧?chuàng)造的字體時(shí)必須指派lfescapement和lforientation,角度的單位是十分之一度。 請(qǐng)注意,只有True Type可以有這樣的方向。</p><p><b> 總結(jié)</b></p><p> 在給窗口繪圖之前,我們需要
80、獲取設(shè)備環(huán)境,有許多方法可以獲取窗口的設(shè)備環(huán)境(調(diào)用函數(shù)CWnd::GetDC(),聲明CClientDC或CwindowDC類型變量等等。)</p><p> 客戶區(qū)設(shè)備環(huán)境只能用于窗口的客戶區(qū)繪圖,而窗口設(shè)備環(huán)境可以實(shí)現(xiàn)對(duì)整個(gè)窗口的操作(包括客戶區(qū)域和非客戶區(qū)域)。</p><p> 畫筆用于畫線,矩形的邊,多邊形,橢圓等,并且畫筆有不同的風(fēng)格:實(shí)心筆,虛線筆等。</p>
81、;<p> 畫刷用于填充矩形,多邊形,橢圓等,畫刷也有不同的風(fēng)格:實(shí)心畫刷,陰影線畫刷等等。</p><p> 我們可以用一個(gè)8*8圖像生成一個(gè)畫刷樣式。</p><p> 在調(diào)色板設(shè)備上,有兩種顏色處理方法:調(diào)和和用一種相近的顏色。</p><p> 設(shè)備的功能可以通過(guò)調(diào)用函數(shù)CDC::GetDeviceCaps()得到。</p>
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)專業(yè)外文翻譯--計(jì)算機(jī)
- 計(jì)算機(jī)外文資料翻譯
- 計(jì)算機(jī)專業(yè)外文資料翻譯----微機(jī)發(fā)展簡(jiǎn)史
- 計(jì)算機(jī)專業(yè)-外文翻譯
- 計(jì)算機(jī)專業(yè)外文翻譯---at89s52外文資料翻譯
- 計(jì)算機(jī)專業(yè)外文翻譯(文獻(xiàn)翻譯)
- 計(jì)算機(jī)相關(guān)專業(yè)外文翻譯
- 計(jì)算機(jī)專業(yè)外文翻譯 9
- 計(jì)算機(jī)專業(yè)aspnet外文翻譯
- 計(jì)算機(jī)專業(yè)畢業(yè)外文翻譯
- 計(jì)算機(jī)專業(yè) java外文翻譯
- 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文資料翻譯3
- 計(jì)算機(jī)專業(yè)外文翻譯(文獻(xiàn)翻譯)
- 計(jì)算機(jī)專業(yè)外文翻譯--asp外文翻譯+原文
- 計(jì)算機(jī)專業(yè)外文翻譯----計(jì)算機(jī)視覺中的學(xué)習(xí)
- 計(jì)算機(jī)專業(yè)asp開發(fā)外文翻譯
- 計(jì)算機(jī)c語(yǔ)言專業(yè)外文翻譯
- 計(jì)算機(jī)專業(yè)畢業(yè)外文翻譯1
- 計(jì)算機(jī)專業(yè)外文文獻(xiàn)翻譯
- 計(jì)算機(jī)專業(yè)外文翻譯---網(wǎng)絡(luò)目標(biāo)
評(píng)論
0/150
提交評(píng)論