• <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>

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(8)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

                在該隨筆中將介紹一些GDI的繪圖函數,以加深您對于程序繪圖的認識。

            1、文字輸出
                 窗口畫面上的文字輸出比后面所要介紹的幾個繪圖函數還要重要,因為在程序設計時,可能有時需要在畫面上顯示一些數據和信息,以利于程序本身的追蹤與排錯。

            范例ch2_2:根據鼠標的移動,將光標所在位置的坐標值顯示在窗口中。
            下載:ch2_2(上傳到windows live空間,可能需要MSN賬號登陸)
            說明:程序源代碼中有相關的注釋。
            運行結果如下圖:


            2、多邊形函數
                下表中給出了GDI函數中關于多邊形的繪圖函數: 

            函數名稱

            說明

            Polygon

            繪制封閉多邊形

            PolyLine

            繪制多邊線條

            PolylineTo

            以當前畫筆所在位置繪制多邊線條

            PolyPolygon

            繪制多個封閉多邊形

            PolyPolyline

            繪制多個多邊線條

                以上幾個函數的使用方法大同小異,以Polygon()函數來做說明。
            BOOL Polygon(HDC hdc, CONST POINT 點數組指針, int 多邊形點數);  //繪制多邊形
                第2個參數輸入的是一個POINT結構的數組指針,POINT可用于描述一個坐標點,其結構如下:
            typedef struct tagPOINT{
                                                                    LONG x; 
            // X坐標
                                                                    LONG y; // Y坐標
                                                                  }
             POINT;

            范例ch2_3:展示多邊形繪制函數的用法,并在窗口中繪制多邊形。
            下載:ch2_3(上傳到windows live空間,可能需要MSN賬號登陸)
            說明:程序源代碼中有相關的注釋。
            運行結果如下圖:


            3、封閉圖形函數
                下邊再來討論一下封閉幾何圖形的繪制方法,“畫筆與畫刷”隨筆中介紹了畫矩形的Rectangle()函數,現在再來看看畫橢圓形的GDI函數。
            BOOL Ellipse( HDC hdc,   //繪制橢圓形
                                                int 外圍矩形左上點X坐標,
                                               
            int 外圍矩形左上點Y坐標,
                                               
            int 外圍矩形右下點X坐標,
                                               
            int 外圍矩形右下點Y坐標);
                 上面的函數說明確定一個外圍矩形就可以產生橢圓形。
                  
                 下面再來看看繪制圓角矩形的函數。
            BOOL RoundRect( HDC hdc,    //繪制圓角矩形 
                                                         int 外圍矩形左上點X坐標,
                                                         
            int 外圍矩形左上點Y坐標,
                                                        
            int 外圍矩形右下點X坐標,
                                                        
            int 外圍矩形右下點Y坐標

                                                        
            int 圓角上橢圓長,
                                                        
            int 圓角上橢圓高)
            ;
                在這個函數中,除了給定外圍矩形的坐標外,還給定了圓角上橢圓的長與高,用來表示圓角的弧度。

                最后來說明繪制扇形(Pie)與弓形(Chord)函數,扇形與弓形都是橢圓的一部分。
                扇形與弓形都有連接的起點與終點,不同之處在于,扇形還會與橢圓的中心點相連接,而弓形則直接連接起點與終點。繪制扇形的函數為Pie(),繪制弓形的函數則為Chord(),兩者輸入的參數意義都相同,下面以Pie()函數為例來進行說明。
            BOOL Pie (  HDC hdc,   //繪制扇形
                                 
            int 外圍矩形左上點X坐標,
                                 
            int 外圍矩形左上點Y坐標,
                                 
            int 外圍矩形右下點X坐標,
                                 
            int 外圍矩形右下點Y坐標,
                                  
            int 起點X坐標,
                                 
            int 起點Y坐標,
                                 
            int 終點X坐標,
                                 
            int 終點Y坐標);

            范例ch2_4:顯示封閉圖形繪制函數的用法,并在窗口中繪制不同圖形。
            下載:ch2_4(上傳到windows live空間,可能需要MSN賬號登陸)
            說明:程序源代碼中有相關的注釋。
            運行結果如下圖:
             

            PS:如想獲得更多關于Visual C++游戲開發的內容,可點擊隨筆:《Visual C++游戲編程基礎》學習筆記——索引隨筆
            posted on 2010-04-08 14:37 煙皚 閱讀(8073) 評論(3)  編輯 收藏 引用 所屬分類: 《Visual C++游戲編程基礎》學習筆記

            Feedback

            # re: GDI繪圖函數 2010-04-08 17:39 陳梓瀚(vczh)
            GDI原則上可以做到跟GDI+一樣,使用帶透明漸變顏色或圖片的Brush,使用任意Brush構造Pen,使用任意Brush和Pen畫圖。雖然效率可能會慢一點點(GDI+也快不起來),只要你熟練地將clipping和transparent API用好。

            http://m.shnenglu.com/vczh/archive/2009/08/02/91972.html  回復  更多評論
              

            # re: GDI繪圖函數 2010-04-08 17:41 煙皚
            clipping和transparent API?
            剛接觸,不是很了解的說,為什么要把這兩個掌握好呢?  回復  更多評論
              

            # re: GDI繪圖函數 2012-05-11 15:27 薩芬的
            是的  回復  更多評論
              

            99精品国产免费久久久久久下载| 久久精品国产AV一区二区三区| 国产精品青草久久久久婷婷| 高清免费久久午夜精品| 国产精品久久久久久久久久免费| segui久久国产精品| A级毛片无码久久精品免费| 久久精品成人欧美大片| 日本高清无卡码一区二区久久| 偷窥少妇久久久久久久久| 久久久无码精品亚洲日韩按摩 | 精品国产VA久久久久久久冰 | 欧美日韩精品久久免费| 五月丁香综合激情六月久久| 精品国产91久久久久久久 | 99国产欧美精品久久久蜜芽 | 无码人妻久久一区二区三区免费丨| 久久精品中文闷骚内射| 亚洲欧美国产精品专区久久| 99久久人妻无码精品系列 | 久久91精品久久91综合| 久久亚洲国产最新网站| 国产福利电影一区二区三区,免费久久久久久久精 | 色婷婷久久综合中文久久蜜桃av| 伊人丁香狠狠色综合久久| 亚洲中文字幕无码久久综合网| 久久久久亚洲AV无码专区桃色| 久久国产色AV免费观看| 亚洲精品乱码久久久久久自慰| 手机看片久久高清国产日韩| 三级片免费观看久久| 国内精品伊人久久久久网站| 香蕉久久一区二区不卡无毒影院 | 色狠狠久久综合网| 色综合久久88色综合天天 | 国产三级观看久久| 国产伊人久久| 亚洲国产成人久久精品99| 亚洲?V乱码久久精品蜜桃| 欧美成人免费观看久久| 久久久久久精品免费看SSS|