• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Welcome to ErranLi's Blog!

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(12)

            搜索

            •  

            積分與排名

            • 積分 - 175922
            • 排名 - 151

            最新評(píng)論

            閱讀排行榜

             GDI+的核心:Graphics類


            (1)The Graphics class provides methods for drawing lines, curves, figures, images, and text. A Graphics object stores attributes of the display device and attributes of the items to be drawn.【msdn】

                    Graphics是一個(gè)device context和你的drawing conetent之間的一個(gè)中介。它存儲(chǔ)了device context的相關(guān)屬性,以及drawing content的屬性。這樣,它就能用自己的方法把drawing content“映射”到device content 之上。

            (2)GDI+的核心是Graphics類,包含了顯示、繪圖等功能。它提供了四個(gè)構(gòu)造函數(shù):
               Graphics::Graphics(Image*)
               Graphics::Graphics(HDC)
               Graphics::Graphics(HDC,HANDLE)
               Graphics::Graphics(HWND,BOOL)

               構(gòu)造函數(shù)1從image對(duì)象創(chuàng)建一個(gè)Graphics類。這種方式允許你在打開(kāi)某張,或者生成某張位圖之后,應(yīng)用Grapgics的方法對(duì)改位圖進(jìn)行操作。

               構(gòu)造函數(shù)2從一個(gè)傳統(tǒng)的HDC獲取一個(gè)Graphics對(duì)象,把傳統(tǒng)的在HDC完成的操作接手過(guò)來(lái)。也就是當(dāng)要畫(huà)直線,曲線,圖形等時(shí),采用這種構(gòu)造函數(shù)。

               后面兩種構(gòu)造函數(shù)這里不說(shuō)了!

            (3)如果讀者有GDI編程經(jīng)驗(yàn)的話,應(yīng)該會(huì)聯(lián)想起CDC::CreateCompatibleDC和CBitmap::
            CreateCompatibleBitmap吧?再列舉Graphics中有代表性的用于繪圖的成員函數(shù):
               Graphics::DrawArc(Pen*,INT,INT,INT,INT,REAL,REAL)
               Graphics::DrawBeziers(Pen*,Point*,INT)
               Graphics::DrawClosedCurve(Pen*,Point*,INT)
               Graphics::DrawCurve(Pen*,Point*,INT)
               Graphics::DrawEllipse(Pen*,Rect&amp;)
               Graphics::DrawImage(Image*,RectF&amp;)
               Graphics::DrawLine(Pen*,Point&amp;,Point&amp;)
               Graphics::DrawPie(Pen*,Rect&amp;,REAL,REAL)
               Graphics::DrawPolygon(Pen*,Point*,INT*)
               Graphics::DrawRectangle(Pen*,Rect&amp;)
               是不是非常象CDC?從這里大家也能猜出一點(diǎn)Graphics類和CDC類的異同吧!簡(jiǎn)單的說(shuō),Graphics的層次更高一些,封裝的更好。


            2  GDI+的幾個(gè)特點(diǎn):

               (1)傳統(tǒng)的GDI編程最痛苦的是什么?是不停的CreateObject,SeleteObject,DeleteObject——代碼繁瑣,一不小心還會(huì)內(nèi)存泄露……現(xiàn)在GDI+結(jié)束了這一切,就憑這一個(gè)理由,也足夠我們轉(zhuǎn)向GDI+了,呵呵。從上面的幾個(gè)成員函數(shù)可以看出來(lái),每個(gè)繪圖動(dòng)作都指定了畫(huà)筆、刷子或者Image,完全拋棄了SelectObject的概念。

               (2)GDI+里面的顏色更加豐富,全面支持32位色,從Color類的構(gòu)造函數(shù)就可以看出來(lái):

                       Color::Color(BYTE a, BYTE r, BYTE g, BYTE b);其中a就是透明度。

               (3)GDI+里的所有函數(shù)都只接受Unicode字符串,編寫(xiě)代碼的時(shí)候需要注意這一點(diǎn)。


            本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/keyouan2008/archive/2010/08/13/5809519.aspx

            posted on 2010-10-09 17:02 erran 閱讀(1193) 評(píng)論(0)  編輯 收藏 引用 所屬分類: dotNet
            99久久成人18免费网站| 久久久久人妻精品一区三寸蜜桃 | 亚洲国产精品成人久久| 性做久久久久久久| 一级做a爰片久久毛片16| 国产成人久久精品二区三区| 欧洲性大片xxxxx久久久| 久久99热这里只有精品国产| 久久精品一本到99热免费| 99热成人精品免费久久| 97精品伊人久久久大香线蕉| 一级做a爰片久久毛片16| 亚洲国产精品久久久天堂| 色婷婷狠狠久久综合五月| 色诱久久久久综合网ywww| 久久久久国产日韩精品网站| 无码久久精品国产亚洲Av影片| 国产一区二区精品久久岳| 国内精品综合久久久40p| 99久久亚洲综合精品成人| 精品久久久噜噜噜久久久| 热99RE久久精品这里都是精品免费| 91久久精品91久久性色| 亚洲国产成人精品女人久久久 | 国产高清美女一级a毛片久久w| 97精品国产97久久久久久免费| 久久国产三级无码一区二区| 久久精品国产精品青草| 久久午夜伦鲁片免费无码| 久久婷婷五月综合97色| 久久精品国产99国产精品亚洲 | 国产香蕉久久精品综合网| 国产日韩欧美久久| 精品久久人人妻人人做精品| 国产亚洲婷婷香蕉久久精品| 五月丁香综合激情六月久久| 色欲久久久天天天综合网精品| 久久www免费人成看片| 无码AV中文字幕久久专区| 色8久久人人97超碰香蕉987| 99久久精品午夜一区二区|