HDC,CDC,CClientDC的区别和联系是什么?
来源:互联网 发布:网络用语jqk什么意思 编辑:程序博客网 时间:2024/06/06 02:57
CDC类是MFC为了实现GDI功能专门封装的一个类,而且它是基类,由它派生出的类有CWindowDC、CClientDC 的等等,因而他们是继承的关系,CClientDC专门用来绘制窗口或者控件的客户区
pDC 是 类指针
HDC 是 windows句柄
通过pDC获得hdc:
HDC hdc=pDC->GetSafeHdc();
通过hdc获得pDC:
CDC *pDC=new CDC;
pDC->Attach(hdc);
HDC是WINDOWS的一种数据类型,是设备描述句柄。
而CDC是MFC里的一个类,它封装了几乎所有的关于
HDC的操作。
也可以这样说,HDC定义的变量指向一块内存,这块
内存用来描述一个设备的相关的内容,所以也可以
认为HDC定义的是一个指针;而CDC类定义一个对象,
这个对象拥有HDC定义的一个设备描述表,同时也包
含与HDC相关的操作的函数。
这与HPEN和CPen,POINT与CPoint之间的差别是一样
CPaintDC dc(this)
CDC* pDC=GetDC() ;
CClientDC dc(this) ;
CClientDC *pDC=new CClientDC(this);
析构与定义时的区别:
HDC hscrDC=CreateDC("DISPLAY",NULL,NULL,NULL);
HDC compatDC=CreateCompatibleDC(hscrDC);
DeleteDC(hscrDC);
DeleteDC(hscrDC);
CClietDC *pDC=new CClientDc(this);
( 定义二 :CDC *pDC=GetDC();)
( 定义三://CCLient dc(this); )
CDC memDC;
memDC.CreateCopatibleDC(pDC);
( //memDC.CreateCompatible(&dc); )
delete pDC;
( //dc.deleteObject();)
memDC.DeleteDC();
注意画笔,画刷的析构
CPen pen;
pen.DeleteObject():
- HDC,CDC,CClientDC的区别和联系是什么? (转)
- HDC,CDC,CClientDC的区别和联系是什么?
- HDC,CDC,CClientDC的区别和联系是什么?
- HDC,CDC,CClientDC的区别和联系
- vc初步之——— HDC,CDC,CClientDC的区别和联系是什么?
- HDC,CDC,CClientDC,CPaintDC,CWindowDC的区别
- HDC,CDC,CClientDC,CPaintDC,CWindowDC的区别
- DC,CDC,HDC,CClientDC,CPaintDC 的区别
- MFC中CDC与HDC的区别和联系
- DC,CDC和HDC的区别与联系
- CClientDC 和 CDC 的区别
- CClientDC 和 CDC 的区别
- DC,CDC,HDC,CClientDC....有什么本质的区别?
- HDC,CDC,CPaintDC,CClientDC,CWindowDC区别
- HDC、CDC、CClientDC、CPaintDC和CWindowDC
- DC,CDC,HDC,CClientDC
- HDC, CDC, CClientDC, CWindowDC
- CPaintDC 、CWindowDC、 CClientDC、 CDC的区别与联系
- 百度地图开发(一)——地图定位
- 自定义UICollectionViewFlowLayout
- Redis源码解析:12AOF持久化
- java接口可以实例化吗?
- 脉络清晰的BP神经网络讲解,赞
- HDC,CDC,CClientDC的区别和联系是什么?
- Codeforces #6B. President's Office (DFS)
- HDU--1166敌兵布阵(线段树)
- CreateCompatibleDC 和 CreateCompatibleBitmap
- iOS开发者程序许可协议之简单介绍
- java开发23种设计模式
- Laravel使用redis库
- VK Cup 2016 - Round 1 (Div. 2 Edition)-C - Bear and Forgotten Tree 3-构造
- 通过可变字符串在UILabel上面加横线