所有的绘图操作包括如下几种:利用API、用CDC对象、用CClientDC对象、用CWindowDC对象和CPaintDC;下面分别说明:
利用API来进行绘图操作,首先需要一个设备描述表(DC)句柄HDC,然后才能进行绘图操作,在绘图结束的时候要释放DC,基本操作如下:
HDC hdc=::GetDC(m_hWnd);//GetDC()需要一个指向窗体的句柄作为参数,也就是获得哪个窗体的DC
//下面进行绘图操作,画一条直线
MoveToEx(hdc,0,0,NULL);
LineTo(hdc,100,100);
//释放DC
::ReleaseDC(m_hWnd,hdc);//在这里需要使用全局函数标识符,不然编译会认为是调用了窗体对象的releaseDC()成员函数,从而产生错误
CDC:是其他设备描述表的基类。在这里可以进行所有的操作。CDC在一般情况下需要用当前窗口的CWnd::GetDC()函数进行初始化,即:
CDC *pDC=GetDC();//在任何一个窗口类中均可用该函数来初始化一个CDC类
在该类中,直接可以进行图形的绘制操作
pDC->MoveTo(CPoint(0,0));//如果没有这一句,仍可以画出直线,它将缺省以(0,0)点作为起始点
pDC->LineTo(CPoint(100,100));//如果要连续画直线,则缺省地将终止点作为第二条直线的起始点
pDC->LineTo(CPoint(200,300));//这样的操作也是可行的。
在该操作完成后,需要释放DC:
ReleaseDC(pDC);
CClientDC:作为CDC的一个子类,在构造函数中封装了GetD
利用GDI绘图
最新推荐文章于 2021-12-13 07:50:00 发布