1.CDC、CDCHandle只是CDCT<typename T>模板類的實(shí)例化,區(qū)別只是在析構(gòu)時(shí),一個(gè)會(huì)釋放資源,一個(gè)不會(huì)。
typedef CDCT<false>?? CDCHandle;
typedef CDCT<true>??? CDC;
2.CMemDC從CDC繼承,除了構(gòu)造函數(shù)與析構(gòu)函數(shù)外沒有其它成員函數(shù)
3.CDC的成員變量只有一個(gè):m_hDC
CMemDC有自己的更多的成員變量,同時(shí)還可以使用CDC的m_hDC:
?? CDCHandle???? m_dc;????????? // 屏幕的DC Owner DC
?? CBitmap?????? m_bitmap;????? // Offscreen bitmap
?? CBitmapHandle m_hOldBitmap;? // Originally selected bitmap
?? RECT????????? m_rc;????????? // Rectangle of drawing area
4.實(shí)際使用:
(1)先將屏幕的hdc作為CMemDC的構(gòu)造參數(shù)
void CODButtonImpl::DrawItem ( LPDRAWITEMSTRUCT lpdis )
{
?RECT rc = lpdis->rcItem;
?CDCHandle hdc = lpdis->hDC;
?CMemDC dc( lpdis->hDC, &rc,RGB(255,0,0));
? ....
}
(2)將CMemDC轉(zhuǎn)成換CDC(不轉(zhuǎn)也無所謂,凡正CMemDC沒有成員函數(shù)供你使用),然后用CDC的成員函數(shù)對(duì)m_hDC進(jìn)行繪圖操作,注意你是在CDC類的m_hDC中繪圖。
??dc.SetPixel(CPoint(10,6),RGB(251,200,99));
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
