windows draw api

来源:互联网 发布:哪个编程语言最好学 编辑:程序博客网 时间:2024/05/16 10:44

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));

原创粉丝点击