windows圖形基礎---Win32

1. GDI呼叫函數
1) 取得或釋放設備內容函數
    BeginPaint(), EndPaint();
    GetDC(), ReleaseDC();
2) 取得有關設備內容信息的函數
    GetTextMetrics()
3) 繪圖函數
   TextOut()
4) 設定和取得設備內容參數函數
   SetTextColor(), SetTextAlign();
5) 使用設備內容對象函數
   CreatePen()

2. GDI基本圖形
1) 直線和曲線
2) 填入區域
3) 位圖
4) 文字

3. 保存設備內容
    在某些情況下,您可能想改變某些設備內容的屬性,用改變後的屬性進行繪圖,然後恢復原來的設備內容。
    要簡化這一過程可以通過調用SaveDC函數:
    int nSavedDC;
    SaveDC(HDC hdc);
    在想要回到呼叫SaveDC前存在的設備內容時,可以呼叫:
    RestoreDC(HDC hdc, int nSavedDC);

4. 邊界框函數
    畫矩形
    Rectangle(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom); 
    畫橢圓
    Ellipse(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom);
    畫圓角矩形
    RoundRect(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom, __in int width, __in int height);
    畫弧線
    Arc(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
    畫弓形
    Chord(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
    畫扇形
    Pie(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;

5. 使用設備內容對象
我們可以建立的GDI對象有:邏輯畫筆,畫刷,位圖,區域,字體,和調色盤
1) 邏輯畫筆
    使用windows現有畫筆
    畫筆決定線顏色,寬度和畫筆樣式
    畫筆樣式可以是: 實線, 點劃線, 或者虛線
    內定設備內容中畫筆爲BLACK_PEN
    Windows提供的三種畫筆: BLACK_PEN, WHITE_PEN, NULL_PEN
    呼叫GetStockObject,可以獲得現有畫筆的句柄
    HPEN = hPen;
    hPen = (HPEN)GetStockObject(BLACK_PEN);
    現在必須將畫筆選進設備內容
    SelectObject(hdc, hPen);
    或者: hPen = SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
2) 畫筆的建立,選擇和刪除
    CreatePen或者CreatePenIndirect函數
    HPEN hPen = CreatePen(__in int iStyle, __in int cWidth, __in COLORREF color);
    iStyle: PS_SOLID;  
               PS_DASH;
               PS_DOT;
               PS_DASHDOT;
               PS_DASHDOTDOT;
               PS_NULL;
               PS_INSIDEFRAME;
              SelectObject(__in HDC hdc, __in HGDIOBJ h);
              DeleteObject(__in HGDIOBJ ho);
     注意: 一般在呼叫EndPaint之後使用DeleteObject,不要刪除設備內容正在使用的畫筆
    DeleteObject (SelectObject (hdc, GetStockObject (BLACK_PEN)));
    SelectObject函數返回上一次使用的畫筆句柄
    SelectObject(hdc, CreatePen(iStyle, cWidth, color));

3) 畫刷:
     Windows定義了六種畫刷:WHITE_BRUSH、LTGRAY_BRUSH、GRAY_BRUSH、DKGRAY_BRUSH、BLACK_BRUSH和NULL_BRUSH
    HBRUSH hBrush;
    hBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    SelectObject (hdc, hBrush) ;
    SelectObject (hdc, GetStockObject (NULL_PEN)) ;
    hBrush = CreateSolidBrush(RGB(255, 0, 0))                    // 創建單一顏色的畫刷
    hBrush = CreateHatchBrush (iHatchStyle, crColor) ;       // 創建帶圖案的畫刷
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章