MFC 绘图类

一、绘图类

 

 CDC、CPaintDC、CClientDC、CWindowDC等,其中CDC类是基础,另外几个类是为了特殊应用派生出来的。

 

 

1、CDC类

 

   CDC类是CObject类的一个派生类,CDC类是所有绘图类的基类。CDC类定义了设备描述对象并提供了对设备描述对象进行操作的成员函数,以及对与窗口与客户区有关的显示区进行操作的成员函数。

 

  用于设备描述对象进行的操作、绘图工具的使用、图形设备界面(GDI)的选择,以及颜色和调色板的操作。它提供的成员函数还用于取得和设置绘图属性、映像方式、视口和窗口范围的操作、坐标的转换、区域的使用、剪取、画线,以及绘制图形、文字。含了大部份操作。

 

2、CPaintDC类

 

用于模拟响应Windows消息WM_PAINT的设备环境,在这个类中,可以使用CDC的所有函数,CPaintDC类一般用于在函数OnPaint内,以响应WM_PAINT消息。

 

3、CClientDC类

 

CClientDC类也是CDC类的一个派生类,它为非响应Windows消息WM_PAINT的成员函数提供环境。

 

4、CWindowDC类

 

CWindowDC也是CDC类的一个派生类,它提供了一个设备环境,以便成员函数在包括非客户区在内的整个屏幕区域内绘图。

 

 

二、几个绘图类的主要差别

 

 

1、CWindowDC类与CPaintDC类、CClientDC类区别

 

    一个方面是用CPaintDC类和CClientDC类的对象绘制图形时,绘制区只能是客户区,而不能在非客户区。而CWindowDC可以在非客户区绘制。

 

 

    另一个方面CWindowDC类的坐标系是建立在整个屏幕上的,在像素坐标方式下,坐标原点在屏幕的左上角

    而CPaintDC类、CClientDC类绘图类下,坐标系是建立在客户区上的,在像素坐标方式下,坐标原点在客户区的左上角。

 

 

2、CPaintDC类和CClientDC类区别

 

    绘制机制不同

 

   CPaintDC应用在OnPaint函数中,响应WM_PAINT消息,自动完成绘制,这对维护图形的完整性有着重要的作用。

 

 

参考资料:

 

http://blog.gogo36.cn/blog.php?do=showone&uid=9854&type=blog&cid=&itemid=50775

你可能感兴趣的:(windows,mfc,工具,图形)