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

2022-04-01 14:19:07 字數 1985 閱讀 6274

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...