利用MFC 的CDC 类实现画线功能

来源:互联网 发布:js原型的概念 编辑:程序博客网 时间:2024/05/16 05:47

   MFC为我们提供了一个设备描述表的封装类CDC,该类封装了所有与绘图相关的操作。该类提供了一个数据成员m_hDC,用来保存于CDC 类相关的DC 句柄。

其道理,与CWnd类提供m_hWnd成员变量保存与窗口相关的窗口句柄是一样的。代码如下:

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) {/*HDC hdc;    //首先,获得窗口的设备描述符hdc=::GetDC(m_hWnd);//线段的起点MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);//线段的终点LineTo(hdc,point.x,point.y);::ReleaseDC(m_hWnd,hdc);//释放DC */CDC *pDC=GetDC();pDC->MoveTo(m_ptOrigin);pDC->LineTo(point);ReleaseDC(pDC);CView::OnLButtonUp(nFlags, point);}

    利用MFC 类实现画线功能时,首先需要定义一个CDC 类型的指针,并利用CWnd类的成员函数GetDC 获取当前窗口的设备描述表对象的指针;

接着,利用CDC类的成员函数MoveTo和LineTo完成画线操作;最后,调用CWnd类的成员函数ReleaseDC释放设备描述表资源。

   Build并运行Drawc程序,拖动鼠标同样可以在窗口中绘制直线。

提示:

       因为CWnd类提供了成员函数GetDC和ReleaseDC,因此先前利用Platform SDK函数实现画线功能时,这两个函数前面都加上了"::",表明它们是全局函数。否则,VC++编译器将认为它们是CWnd类的成员函数。

 

 

0 0