[MFC] CDC三大派生类

MFC把GDI函数都封装在CDC中, 核心就是成员变量m_hDC, 所有的成员函数都是围绕着它来进行的;

在MFC封装的三个派生类中, 只有构造函数和析构函数两个成员函数, 目的主要是利用对象构造和析构时, 可以自动成对调用函数. 例如:BeginPaint和EndPaint是必须成对使用的, 一旦忘记调用EndPaint就可能造成内存泄漏;


CDC三大派生类:

1. CPaintDC类:  封装BeginPaint和EndPaint函数, 用于标准客户区绘图, 窗口刷新时不消失, 在WM_PAINT消息下使用;

2. CWindowDC类:  封装GetWindowDC和ReleaseDC函数, 用于非客户区绘图, 窗口刷新时不消失, 在WM_NCPAINT消息下使用;

3. CClientDC类: 封装GetDC和ReleaseDC函数, 用于临时客户区绘图, 窗口刷新时消失, 任何时候都可以使用;

备注:

   CMenuDC类:  封装CreateCompatibleDC和DeleteDC, 用于内存绘图, 常用于双缓冲防止画面闪烁; Visual C++6.0暂未封装此类, VS高版本IDE中有此类;

通过CDC三大派生类绘图, 代码如下:

1.标准客户区绘图,


2. 非客户区绘图:


3. 临时客户区绘图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值