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);
回覆於 2004-04-08 17:46:03 得分 20
hdc hdc;
cdc cdc;
cdc到hdc
hdc = cdc.getsafehdc();
hdc到cdc
cdc.attach(hdc)
回覆於 2004-04-08 17:49:14 得分 15
cdc 是mfc中的類
而hdc是handle
使用hdc getdc()
回覆於 2004-04-08 17:51:49 得分 0
cdc cdc;
hdc hdc = cdc.m_hdc
回覆於 2004-04-08 17:54:20 得分 20
cdc dc;
hdc hdc = dc.m_hdc
dc.fromhandle(hdc);
回覆於 2004-04-08 18:01:51 得分 10
cdc to hdc
用成員變數m_hdc
hdc to cdc
用fromhandle
回覆於 2004-04-08 18:02:47 得分 10
dc.fromhandle(hdc)產生乙個dc,但是是臨時的,mfc不保證系統在什麼時候刪除dc.
dc.attach(hdc)是永久的,直到這個dc的生命正常結束。
回覆於 2004-04-08 18:05:21 得分 5
以上的都很對。你就查詢替換。將所有的(hdc,替換為pdc->(當然。前面宣告個
pdc就可以了。
VC中HDC與CDC的區別
首先說一下什麼是dc 裝置描述表 windows應用程式通過為指定裝置 螢幕,印表機等 建立乙個裝置描述表 device context,dc 在dc表示的邏輯意義的 畫布 上進行圖形的繪製。dc是一種包含裝置資訊的資料結構,它包含了物理裝置所需的各種狀態資訊 win32程式在繪製圖形之前需要獲取d...
CDC和HDC的區別與轉換
cdc和hdc的區別與轉換 一 區別與聯絡 hdc是控制代碼 cdc是mfc封裝的windows 裝置相關的乙個類 cclientdc是cdc的衍生類,產生對應於windows客戶區的物件 hdc是windows的一種資料型別,是裝置描述控制代碼。而cdc是mfc裡的乙個類,它封裝了幾乎所有的關於h...
CDC和HDC的區別與轉換
cdc和hdc的區別與轉換 一 區別與聯絡 hdc是控制代碼 cdc是mfc封裝的windows 裝置相關的乙個類 cclientdc是cdc的衍生類,產生對應於windows客戶區的物件 hdc是windows的一種資料型別,是裝置描述控制代碼。而cdc是mfc裡的乙個類,它封裝了幾乎所有的關於h...