CDC与HDC的区别以及二者之间的转换

转载 2012年03月29日 09:21:08
CDC是MFC的DC的一个类 
HDC是DC的句柄,API中的一个类似指针的数据类型. 
MFC类的前缀都是C开头的 
H开头的大多数是句柄 
这是为了助记,是编程读\写代码的好的习惯. 
CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派生类). 
CDC等设备上下分类,都含有一个类的成员变量:m_nHdc;即HDC类型的句柄. 
记住下面的一句话,会有助于你的理解. 
MFC的类,是在用window API语句开发出来的有一定功能的小程序.(也可称为类).使用它的默认方法,就是,记住它的名字与参数(可以用笔记,代替脑记). 
如果将window api比做汇编语言 
那么MFC就相当于Basic语言.
cdc是设备描述表的基类,clientDC指代客户区的设备描述表,PaintDC只用于OnPaint()函数中
HDC是WINDOWS的一种数据类型,是设备描述句柄。   
  而CDC是MFC里的一个类,它封装了几乎所有的关于   
  HDC的操作。   
  也可以这样说,HDC定义的变量指向一块内存,这块   
  内存用来描述一个设备的相关的内容,所以也可以   
  认为HDC定义的是一个指针;而CDC类定义一个对象,   
  这个对象拥有HDC定义的一个设备描述表,同时也包   
  含与HDC相关的操作的函数。   
  这与HPEN和CPen,POINT与CPoint之间的差别是一样   
  的。

CDC 到HDC 的转化:
2007-05-09 12:04
方法一: 此方法在设备结束时不会销毁原来的资源(即:hDC,hBitmap)
CDC *pDC = CDC::FromHandle(hDC);
CBitmap *pBitmap = CBitmap::FromHandle(hBitmap);

方法二: 此方法在设备结束时会销毁原来的资源(即:hDC,hBitmap)
CDC dc;
dc.Attach(hDC);
CBitmap bit;
bit.Attach(hBitmap);

在结束的时候加dc.detach()也不会销毁原来资源

HDC   hdc;   
  CDC   cdc;   
  cdc到hdc   
  hdc   =   cdc.GetSafeHdc();   
  hdc到cdc   
  cdc.Attach(hdc);
 

VC中CDC与HDC的区别以及二者之间的转换

CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数据类型.  MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的...

VC中CDC与HDC的区别以及二者之间的转换

http://blog.sina.com.cn/s/blog_523491650100gwii.html CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数...

CDC与HDC的区别以及二者之间的转换

CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数据类型.  MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的好的习惯.  ...

VC中CDC与HDC的区别以及二者之间的转换

CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数据类型.  MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的...
  • ghevinn
  • ghevinn
  • 2014年06月05日 17:20
  • 1063

String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

首先让我们了解几个概念: 栈 :由JVM分配区域,用于保存线程执行的动作和数据引用。 堆 :由JVM分配的,用于存储对象等数据的区域。 常量池constant pool :在堆中分配出来的一块存...

每日20行之2~~~多线程创始 继承Thread还是实现Runnable 二者之间的区别

继承Thread类class tasks extends Thread{ String[] tasks = {"1","2","3","4","5","6","7"}; tasks (...

String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

String s = new String("xyz"); 这个跟常量池没有关系,只要是new,都是重新分配堆空间,如果不区分栈和堆,这里创建了1个String Object。如果是从jvm角度来说...

CDC与HDC区别与转换

  • 2012年08月29日 15:02
  • 57KB
  • 下载

Windows Gdi & CDC和HDC的区别与转换

一,GDI基础       GDI的绘图函数基本上都是有状态的,所有的函数都要求一个HDC类型的句柄。这个HDC的获得有几个途径BeginPaint,GetWindowDC, GetDC.他们的参数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CDC与HDC的区别以及二者之间的转换
举报原因:
原因补充:

(最多只允许输入30个字)