设备环境DC的概念:
设备环境DC(Device Context又称为设备上下文,也称为设备描述表)。它是一个关于如何绘制图形的方法的集合,它既可以绘制各种图形,也可以确定在应用窗口中绘制图形的方式,就是绘图模式和映射模式。
在Win32编程中,设备环境是用HDC来标识。H的意思Handle句柄的意思。
【DC可以理解为画布】
CPaintDC 、CWindowDC、 CClientDC、 CDC的区别与联系:
DC就是设备上下文(Device Context, DC),可以把它理解成“画布”。
操作系统本来是使用HDC(HDC是DC的句柄,API中的一个类似指针的数据类型.)进行绘画的。
MFC中把HDC包装成了CDC类(MFC类的前缀都是C开头的),提供给程序员使用。
CPaintDC的父类就是CDC,换句话说两者底层使用同一种方法进行绘图。
MFC是通过消息泵信息处理的。CPaintDC内部发出绘图消息给系统。所以描画画面时,最好使用CPaintDC。
CDC只是HDC的包装,不包含绘图消息的发送。所以,创建图片文件(不需要刷新画面)等处理,需要使用CDC
一句话概括:
CPaintDC 无效区dc, 相当于BeginPaint, EndPaint
CClientDC 客户区dc, 相当于GetDC, ReleaseDC
CWindowDC 整窗口dc, 相当于GetWindowDC, ReleaseDC
CDC 任何dc, 相当于CreateDC, DeleteDC
CWindowDC与CClientDC,CPaintDC的区别:CWindowDC可在非客户区绘制图形,而CClientDC,CPaintDC只能在客户区绘制图形。CWindowDC下坐标原点是在屏幕的左上角,CClientDC,CPaintDC下坐标原点是在客户区的左上角。CClientDC与CPaintDC的区别: CPaintDC的对象一般用在OnPaint内以响应Windows消息WM_PAINT,自动完成绘制,在整个窗口内进行重画,维持原有窗口完整性。CClientDC应用在非响应Windows消息WM_PAINT的情况下,进行实时绘制,绘制的区域内被重画获取HDC方法 画笔HPEN
标签:MFC,CDC,CClientDC,DC,HDC,GDI,CPaintDC,绘制 From: https://www.cnblogs.com/liming19680104/p/17299797.html