MFC中CDC画线总结

MFC画线需要起点坐标和终点坐标,利用通过MoveTo函数和的LineTo函数来连接起点和终点形成线.MFC提供了一个绘图的封装类CDC,CDC类的派生类如下图所示,所以MFC的画线就有5种:CDC,CDlinetDC,CMeatFileDC(未验证),CPaintDC,CWindowDC本文对上述四种方法进行演示。

MFC中CDC画线总结_第1张图片

 画图就是得到当前画图窗口的设备描述表,一般使用的GetDC()函数获得;然后将其与CDC设备描述表相关联。

m_ptOrigin画线起点,点画线终点。

1.CDC 

    CDC * pDC = GetDC();
    了pdc->通过MoveTo(m_ptOrigin);
    了pdc->的LineTo(点);
    ReleaseDC(PDC);

2. CClientDC是CDC的派生类,在构造函数时调用DetDC,在分构时调用ReleaseDC,所以在使用时不需要显示的调用GetDC函数.CClientDC
    dc(this);
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(点);

3.一个CPaintDC对象只在响应一个WM_PAINT消息的时候被使用,通常是在你的OnPaint消息处理成员函数中。

void CDrawView :: OnPaint()
{
    CPaintDC dc(this); //绘制
    dc.MoveTo(10,10)的设备上下文;
    dc.LineTo(500500);
}

也可以定义将绘制(DC)函数,并把绘制函数写在Opaint函数里,在绘制利用写绘图函数。

4.CWindowDC是CDC的派生类,在构造函数时调用DetDC,在分构时调用ReleaseDC,所以在使用时不需要显式的调用GetDC函数。

    CWindowDC dc(GetDesktopWindow());
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(点);

5.可以利用SDK函数来画图。

    HDC hdc;
    hdc = :: GetDC(m_hWnd); // SDK函数
    MoveToEx(HDC,m_ptOrigin.x,m_ptOrigin.y,NULL);
    的LineTo(HDC,point.x,point.y);
    :: ReleaseDC(m_hWnd,HDC);

CDC 是MFC的DC的一个类,HDC是DC的句柄 API中的一个类似指针的数据类型.CDC等设备上下文类,含有都类一个的成员变量:m_hDc,用来保存与该类相关的句柄。其道理与CWnd的类提供m_Wnd成员变量保存与窗口相关的句柄。通过SDK函数的GetDC(m_hWnd)得到当前设备句柄。 

MFC中CDC画线总结_第2张图片

你可能感兴趣的:(工作相关技术,C/C++语言)