WTL中CMemDC与CDC、CDCHandle的联系
1.CDC、CDCHandle只是CDCT<typename T>模板类的实例化,区别只是在析构时,一个会释放资源,一个不会。
typedef CDCT<false> CDCHandle;
typedef CDCT<true> CDC;
2.CMemDC从CDC继承,除了构造函数与析构函数外没有其它成员函数
3.CDC的成员变量只有一个:m_hDC
CMemDC有自己的更多的成员变量,同时还可以使用CDC的m_hDC:
CDCHandle m_dc; // 屏幕的DC Owner DC
CBitmap m_bitmap; // Offscreen bitmap
CBitmapHandle m_hOldBitmap; // Originally selected bitmap
RECT m_rc; // Rectangle of drawing area
4.实际使用:
(1)先将屏幕的hdc作为CMemDC的构造参数
void CODButtonImpl::DrawItem ( LPDRAWITEMSTRUCT lpdis )
{
RECT rc = lpdis->rcItem;
CDCHandle hdc = lpdis->hDC;
CMemDC dc( lpdis->hDC, &rc,RGB(255,0,0));
....
}
(2)将CMemDC转成换CDC(不转也无所谓,凡正CMemDC没有成员函数供你使用),然后用CDC的成员函数对m_hDC进行绘图操作,注意你是在CDC类的m_hDC中绘图。
dc.SetPixel(CPoint(10,6),RGB(251,200,99));
WTL中CMemDC与CDC、CDCHandle的联系相关推荐
- C++零食:WTL中使用双缓冲避免闪烁
双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板.首先我们在内存环境中建立一个"虚拟"的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制 ...
- wtl中显示html,用WTL构建HTML界面应用程序(1)
主要针对有一定Windows编程经验的读者.阅读本文需要对COM机制有一定的了解,最好掌握C++的STL,熟悉模板机制.本文假定您使用的是Visual C++(6.0以上版本),并正确安装了WTL 7 ...
- MFC中的DC,CDC和HDC
设备描述表(DC)是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息. 图形显示功能是由显卡来完成的,你想要利用显卡的图形显示功 ...
- mysql cdc采集_浅谈CDC在微服务中的应用
原标题:浅谈CDC在微服务中的应用 CDC(Change Data Capture)是一种通过监测数据变更(变更包括新增.修改.删除等)而对变更的数据进行进一步处理的一种设计模式,通常应用在数据仓库以 ...
- (转)WTL入门(5)--- 高级的对话框UI类
源代码:http://download.csdn.net/source/3522809 上一篇文章中,讲述了一些WTL的关于对话框和控件的特性,本章中将讲述的新的WTL类实现了一些高级UI特性:所有者 ...
- WTL入门(5)--- 高级的对话框UI类
源代码:http://download.csdn.net/source/3522809 上一篇文章中,讲述了一些WTL的关于对话框和控件的特性,本章中将讲述的新的WTL类实现了一些高级UI特性:所有者 ...
- SQL Server 2008 的CDC功能
CDC(Change Data Capture)通过对事务日志的异步读取,记录DML操作的发生时间.类型和实际影响的数据变化,然后将这些数据记录到启用CDC时自动创建的表中.通过cdc相关的存储过程, ...
- SQL Server审计功能入门:CDC(Change Data Capture)
原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. ...
- XDC约束技巧——CDC篇
上一篇<XDC约束技巧之时钟篇>介绍了XDC的优势以及基本语法,详细说明了如何根据时钟结构和设计要求来创建合适的时钟约束.我们知道XDC与UCF的根本区别之一就是对跨时钟域路径(CDC)的 ...
最新文章
- Nature Methods:微生物来源分析包SourceTracker——结果解读和使用教程
- Zabbix5.0监控系统安装详解
- linux命令学习记录一
- mysql5.0 php_php怎么连接mysql5.0?
- mysql 的isnull
- 大数据分析的方法有哪些
- python异步爬虫_Python异步爬虫试验[Celery,gevent,requests]
- Codeforces 700 C. Break Up(Tarjan求桥)
- 【转载】Chrome team 发起了浏览器兼容性检测工具开源项目
- BGP路由技术详解(一)
- 企业邮箱申请流程有哪些?公司邮箱的优势有哪些?
- 解决msvcr120.dll文件丢失问题(搞了半天,简直奔溃,最后完美解决)
- 【c】三角形图形输入 6*11 看懂这一个以后打印图形信手nian来
- 百度地图JSAPI标注旋转
- MATLAB Handle类的set和get方法
- linux开启514端口,查看linux服务器所开放的端口
- python3将文本内容生成词云
- 朴素贝叶斯 二项式 伯努利
- Linux的系统架构(linux由哪几部分组成?)
- 完美解决eNSP virtualBox安装完成后只有VirtualBox Host-Only Network #2,Ensp利用虚拟网卡的设备无法启动。eNSP设备AC;AP设备报41错误解决办法。
热门文章
- Java设计模式(访问者模式-迭代器模式-观察者模式-中介者模式)
- 统计数据背后的指数分布模型
- 智能车竞赛技术报告 | 智能车视觉 - 青岛工学院 - 青工战斗
- 2021年春季学期-信号与系统-第十一次作业参考答案-第八小题
- 金黄色的LED灯带感光特性测量
- java 图片不更新,图片下传页面不能及时更新,求解
- swagger 返回json字符串_Net Core微服务入门全纪录(完结)——Ocelot与Swagger
- C linux 宏定义的使用
- php开源文件管理,搭建php开源的文件管理器eXtplorer
- laravel mysql like_Laravel数据库查询中对 like 的值进行转义