• <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++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(12)

            搜索

            •  

            積分與排名

            • 積分 - 175914
            • 排名 - 151

            最新評論

            閱讀排行榜

             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是一個device context和你的drawing conetent之間的一個中介。它存儲了device context的相關屬性,以及drawing content的屬性。這樣,它就能用自己的方法把drawing content“映射”到device content 之上。

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

               構造函數1從image對象創建一個Graphics類。這種方式允許你在打開某張,或者生成某張位圖之后,應用Grapgics的方法對改位圖進行操作。

               構造函數2從一個傳統的HDC獲取一個Graphics對象,把傳統的在HDC完成的操作接手過來。也就是當要畫直線,曲線,圖形等時,采用這種構造函數。

               后面兩種構造函數這里不說了!

            (3)如果讀者有GDI編程經驗的話,應該會聯想起CDC::CreateCompatibleDC和CBitmap::
            CreateCompatibleBitmap吧?再列舉Graphics中有代表性的用于繪圖的成員函數:
               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?從這里大家也能猜出一點Graphics類和CDC類的異同吧!簡單的說,Graphics的層次更高一些,封裝的更好。


            2  GDI+的幾個特點:

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

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

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

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


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/keyouan2008/archive/2010/08/13/5809519.aspx

            posted on 2010-10-09 17:02 erran 閱讀(1192) 評論(0)  編輯 收藏 引用 所屬分類: dotNet
            国产精品久久永久免费| 国产精品日韩深夜福利久久| 久久久久久国产精品无码下载| 国产成人久久777777| 日韩一区二区三区视频久久| 免费一级做a爰片久久毛片潮| 亚洲国产精品嫩草影院久久| 亚洲中文字幕无码久久综合网 | 久久精品国产精品亚洲人人 | 欧美伊香蕉久久综合类网站| 91久久婷婷国产综合精品青草 | 精品无码久久久久久久动漫| 久久精品国产亚洲AV蜜臀色欲| 久久精品国产亚洲AV大全| 精品国产青草久久久久福利| 国产精品中文久久久久久久| 久久99国产精品久久99| 亚洲精品无码久久久| 久久综合久久综合久久| 国产成人精品综合久久久久| 人人狠狠综合久久亚洲婷婷| 亚洲AV无一区二区三区久久| 久久久综合香蕉尹人综合网| 久久狠狠高潮亚洲精品| 国产精品久久新婚兰兰 | 一本久久久久久久| 久久久久亚洲AV无码麻豆| 亚洲精品成人久久久| 国内精品久久久久国产盗摄| 久久人人爽人人爽人人片AV不| 久久久久久国产精品免费免费| 久久精品成人免费网站| 欧美喷潮久久久XXXXx| 久久午夜夜伦鲁鲁片免费无码影视| 国产农村妇女毛片精品久久| 91精品国产乱码久久久久久| 奇米综合四色77777久久| 午夜人妻久久久久久久久| 亚洲国产精品久久久天堂| 一本色道久久99一综合| 久久久久亚洲AV无码网站|