天天看點

createcompatibledc(createcompatibledc 重新整理不閃屏)

如何釋放句柄?如(HDC&HBITMAP)HDCpaintDC=

試試看delete paintDC;

記得應該就是用DeleteObject呀~

請教:windowsmobile手機豎螢幕切換到橫螢幕時候,螢幕?

改為 InvalidateRect(hWnd, NULL, FALSE)試試。或者屏蔽掉繪制背景消息。

語句dc->BitBlt()和hdc=::CreateCompatibleDC()中dc和hdc的不同,急,謝謝~

dc是在CFrameWnd裡的,封裝好的,相當于精裝修房,用起來友善一些

CDC dc;

CDC *mdc;

mdc=new CDC;//建立記憶體

mdc->CreateCompatibleDC(&dc); // 将記憶體與作畫區進行關聯。将dc的位址傳遞進去。 &是取dc位址

mdc->SelectObject(bitmap); //将圖檔放入到記憶體中

dc.BitBlt(x,y,width,height,mdc,left,top,SRCPAINT);

hdc是Win32程式設計裡直接用的,屬于毛坯房一點用起來自由一點

HDC dc;

HDC *mdc;

mdc=new HDC;//建立記憶體

/mdc->CreateCompatibleDC(dc); // 将記憶體與作畫區進行關聯。将dc的位址傳遞進去。 &是取dc位址

mdc->SelectObject(bitmap); //将圖檔放入到記憶體中BitBlt(dc,x,y,width,height,mdc,left,top,SRCPAINT);

注意,前面都差不多,最後一行那個BitBlt不同,一個是面向對象的dc.BitBlt, 另一個是自由函數BitBlt.你這段語句裡面dc是一個CDC對象的指針。和一般類的對象指針的使用沒什麼不同。

而HDC是一個句柄。很多操作都是把這個句柄當作參數來調用的。

請問為何要調用dcMem.CreateCompatibleDC(pDC)這個函數?