[原]【Visual C++】CDC與HDC的區(qū)別以及相互轉(zhuǎn)換
Posted on 2012-04-15 16:37 zljpp 閱讀(379) 評(píng)論(0) 編輯 收藏CDC是MFC的DC的一個(gè)類(lèi)
HDC是DC的句柄,API中的一個(gè)類(lèi)似指針的數(shù)據(jù)類(lèi)型.
MFC類(lèi)的前綴都是C開(kāi)頭的
H開(kāi)頭的大多數(shù)是句柄
這是為了助記,是編程讀\寫(xiě)代碼的好的習(xí)慣.
CDC中所有MFC的DC的基類(lèi).常用的CClientDC dc(this);就是CDC的子類(lèi)(或稱(chēng)派生類(lèi)).
CDC等設(shè)備上下分類(lèi),都含有一個(gè)類(lèi)的成員變量:m_nHdc;即HDC類(lèi)型的句柄.
記住下面的一句話(huà),會(huì)有助于你的理解.
MFC的類(lèi),是在用window API語(yǔ)句開(kāi)發(fā)出來(lái)的有一定功能的小程序.(也可稱(chēng)為類(lèi)).使用它的默認(rèn)方法,就是,記住它的名字與參數(shù)(可以用筆記,代替腦記).
如果將window api比做匯編語(yǔ)言
那么MFC就相當(dāng)于Basic語(yǔ)言.
cdc是設(shè)備描述表的基類(lèi),clientDC指代客戶(hù)區(qū)的設(shè)備描述表,PaintDC只用于OnPaint()函數(shù)中
CDC是MFC的DC的一個(gè)類(lèi)
HDC是DC的句柄,API中的一個(gè)類(lèi)似指針的數(shù)據(jù)類(lèi)型.
MFC類(lèi)的前綴都是C開(kāi)頭的
H開(kāi)頭的大多數(shù)是句柄
這是為了助記,是編程讀\寫(xiě)代碼的好的習(xí)慣.
CDC中所有MFC的DC的基類(lèi).常用的CClientDC dc(this);就是CDC的子類(lèi)(或稱(chēng)派生類(lèi)).
CDC等設(shè)備上下分類(lèi),都含有一個(gè)類(lèi)的成員變量:m_nHdc;即HDC類(lèi)型的句柄.
記住下面的一句話(huà),會(huì)有助于你的理解.
MFC的類(lèi),是在用window API語(yǔ)句開(kāi)發(fā)出來(lái)的有一定功能的小程序.(也可稱(chēng)為類(lèi)).使用它的默認(rèn)方法,就是,記住它的名字與參數(shù)(可以用筆記,代替腦記).
如果將window api比做匯編語(yǔ)言
那么MFC就相當(dāng)于Basic語(yǔ)言.
HDC是WINDOWS的一種數(shù)據(jù)類(lèi)型,是設(shè)備描述句柄。
CDC 到HDC 的轉(zhuǎn)化:
方法一: 此方法在設(shè)備結(jié)束時(shí)不會(huì)銷(xiāo)毀原來(lái)的資源(即:hDC,hBitmap)
CDC *pDC = CDC::FromHandle(hDC);
CBitmap *pBitmap = CBitmap::FromHandle(hBitmap);
方法二: 此方法在設(shè)備結(jié)束時(shí)會(huì)銷(xiāo)毀原來(lái)的資源(即:hDC,hBitmap)
CDC dc;
dc.Attach(hDC);
CBitmap bit;
bit.Attach(hBitmap);
在結(jié)束的時(shí)候加dc.detach()也不會(huì)銷(xiāo)毀原來(lái)資源
HDC hdc;
tip1:
HDC hdc;
tip2:
CDC 是MFC中的類(lèi)
tip3:
CDC cdc;
tip4:
CDC dc;
tip5:
CDC to hdc
tip6:
dc.FromHandle(hDC)產(chǎn)生一個(gè)dc,但是是臨時(shí)的,mfc不保證系統(tǒng)在什么時(shí)候刪除dc.
tip7:
查找替換。將所有的(hdc,替換為pdc->(當(dāng)然。前面聲明個(gè)
轉(zhuǎn)自:http://blog.sina.com.cn/s/blog_523491650100gwii.html
作者:zhmxy555 發(fā)表于2012-4-10 1:55:06 原文鏈接
閱讀:145 評(píng)論:0 查看評(píng)論