您的位置:首页 > 其它

在window中绘制图像――CDC设备环境类

2010-09-05 20:52 127 查看
Visual C++的CDC类是MFC中最重要的类之一,它封装了绘图所需要的所有函数,是用户编写图形和文字处理程序所必不可少的。

CDC是一个很大的类,包含了各种类型的Windows设备描述表的全部功能,封装了所有的与Win32 GDI函数和设备表相关的SDK函数。在MFC下,使用CDC的成员函数来完成所有的窗口绘制工作,包括创建和初始化DC的函数、绘制一般图形的GDI函数和绘制各种复杂图形的GDI函数。CDC类派生子CObject,它具有CObject类共同特性,如,如可以动态创建、进行序列化等。CDC有四个派生类,以标明不同的绘制权限。分别为CClientDC、CPaintDC、CWindowsDC和CMetaFileDC。

CClientDC:是CDC类的派生类之一,它主要实现在窗口的客户区中绘制图形。其构造函数CClientDC(CWnd * pWin)通过CClientDC::GetDC函数获取指定窗口的客户区的设备描述表,并且使用成员函数Attach把它和CClientDC对象绑在一起;其析构函数使用成员函数Detach把设备描述表句柄HDC分离出来,并调用CClientDC::ReleaseDC释放设备描述表HDC。

CPaintDC:他一般用来响应WM_PAINT消息时绘制窗口。他的构造函数调用了CPaintDC::BeginPaint获取设备描述表HDC,并且使用成员函数Attach把它和CPaintDC对象绑在一起;其析构函数使用成员函数Detach把设备描述表句柄HDC分离出来,并调用CPaintDC::EndPaint释放设备描述表HDC。而CPaintDC::BeginPaint和CPaintDC::EndPaint仅仅在相应WM_PAINT时使用。

CWindowDC:代表整个窗口区(包括非客户区)的设备描述表。其构造函数CWindowDC(CWnd *pWin)通过CWindowDC::GetWindowDC函数获取指定窗口的客户区的设备描述表HDC,并且使用成员函数Attach把它和CWindowtDC对象绑在一起;其析构函数使用成员函数Detach把设备描述表句柄HDC分离出来,并调用CWindowDC::ReleaseDC释放设备描述表HDC。用于在窗口内任意地方画图,包括非客户区。

CMetaFileDC:用于绘制GDI图元文件,这个类封装了Windows图元文件中绘图的方法。

本文出自 “痴心的秤子” 博客,请务必保留此出处http://yinpengshuai.blog.51cto.com/1306633/387659
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: