常用的CPaintDC类成员函数

来源:互联网 发布:淘宝那些东西增加权重 编辑:程序博客网 时间:2024/04/30 20:17

参考:http://blog.sina.com.cn/s/blog_50eb38e00100amhe.html

1.文字信息显示 

       BOOL TextOut(int x, int y, LPCTSTRlpszString);  

    在指定坐标(x,y)处显示字符串lpszString的内容,显示成功返回非0值,否则返回0。 

2.画线 

   画线工作需经两步完成:首先确定线的起始端位置,这可通过调用成员函数MoveTo完成,其原型为: 

       CPoint MoveTo ( int x, int y); 

       CPoint MoveTo ( POINT point ); 

   MoveTo将绘图位置("看不见")移至指定坐标处,并返回移动前的绘图位置。确定了线的起点后,即可使用成员函数LineTo画线: 

       BOOL LineTo ( int x, int y); 

       BOOL LineTo ( POINT point ); 

   其参数为线终点的坐标。

3.绘制矩形 

       BOOL Rectangle ( int x1, int y1, int x2, inty2 ); 

       BOOL Rectangle ( LPCRECT lpRect ); 

   其参数为需要绘制的矩形的左上角坐标(x1, y1)和右下角坐标(x2, y2)。

4.绘制椭圆 

       BOOL Ellipse(int x1, int y1, int x2, inty2); 

       BOOL Ellipse(LPCRECT lpRect); 

   其参数的含义为所绘椭圆的包含矩形的左上角和右下角坐标。

5.画多边形 

       BOOL Polygon ( LPPOINT lpPoints, int nCount);  

   其中参数lpPoints为一LPPOINT类型的指针,可用CPoint数组(存放多边形的各顶点坐标)作为实参。参数nCount为顶点个数。

6.其他绘图函数

   还有画点SetPixel()、取指定坐标点的颜色GetPixel()、画弧Arc()、画弓形Chord()、画扇型Pie()、画圆角矩形InvertRect()和获取客户区的坐标GetClientRect()等,具体使用方法可参看MSDN联机帮助。

小例子:

void CMainWindow::OnPaint ()
{
    CPaintDC dc (this);
    
    //
    // Initialize the device context.
    //
    dc.SetMapMode (MM_LOENGLISH);
    dc.SetTextAlign (TA_CENTER | TA_BOTTOM);
    dc.SetBkMode (TRANSPARENT);

    //
    // Draw the body of the ruler.
    //
    CBrush brush (RGB (255, 255, 0));
    CBrush* pOldBrush = dc.SelectObject (&brush);////使用新画笔,保存旧画笔
    dc.Rectangle (100, -100, 1300, -200);
    dc.SelectObject (pOldBrush);//// 恢复旧画笔

    //
    // Draw the tick marks and labels.
    //
    for (int i=125; i<1300; i+=25) {
        dc.MoveTo (i, -192);
        dc.LineTo (i, -200);
    }

    for (i=150; i<1300; i+=50) {
        dc.MoveTo (i, -184);
        dc.LineTo (i, -200);
    }

    for (i=200; i<1300; i+=100) {
        dc.MoveTo (i, -175);
        dc.LineTo (i, -200);

        CString string;
        string.Format (_T ("%d"), (i / 100) - 1);
        dc.TextOut (i, -175, string);
    }
}

绘制结果如下图:



0 0
原创粉丝点击