程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VC++ 中CDC與HDC的區別以及二者之間的轉換,cdchdc

VC++ 中CDC與HDC的區別以及二者之間的轉換,cdchdc

編輯:C++入門知識

VC++ 中CDC與HDC的區別以及二者之間的轉換,cdchdc


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()函數中

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.FromHandle(hDC)產生一個dc,但是是臨時的,mfc不保證系統在什麼時候刪除dc.  

dc.Attach(hDC)是永久的,直到這個dc的生命正常結束

在結束的時候加dc.detach()也不會銷毀原來資源

CDC到HDC的轉化:

  方法一:

  HDC   hdc;  

CDC   cdc;  

cdc到hdc  

hdc   =   cdc.GetSafeHdc();  

hdc到cdc  

cdc.Attach(hdc);

  方法二:

  使用成員變量m_hDC

  CDC   dc;  

HDC   hDC   =   dc.m_hDC

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved