建立一個與指定設備一致的內存設備描述表。api
HDC CreateCompatibleDC(HDC hdc //設備描述表句柄);函數
參數 hdcspa
現有的設備描述表的一個句柄,若是這個句柄爲NULL,則函數建立一個和應用程序當前屏幕一致的內存設備描述表。htm
返回值 若是函數調用成功,則返回一個內存設備描述表句柄;不然返回NULL。對象
說明 | |
建立一個與特定設備場景一致的內存設備場景 | |
返回值 | |
Long,新設備場景句柄,若出錯則爲零 | |
參數表 | |
參數 | 類型及說明 |
hdc | Long,設備場景句柄。新的設備場景將與它一致。也可能爲0以建立一個與屏幕一致的設備場景 |
註解 | |
在繪製以前,先要爲該設備場景選定一個位圖。再也不須要時,該設備場景可用DeleteDC函數刪除。刪除前,其全部對象應回覆初始狀態內存 |
BitBlt( //圖形拷貝
HMDC0, //目標設備場景
x0,y0 //目標左上角座標
w,h //目標圖形寬、高
HMDC1, //源設備場景
x1,y1 //源左上角座標
SRCCOPY //拷貝方式,這裏是直接拷貝);ci
使用方法:get
CreateCompatibleDCit
CDC MemDC;//首先定義一個顯示設備對象
CBitmap MemBitmap;//定義一個位圖對象table
//隨後創建與屏幕顯示兼容的內存顯示設備
MemDC.CreateCompatibleDC(NULL);
//這時還不能繪圖,由於沒有地方畫^_^
//下面創建一個與屏幕顯示兼容的位圖,至於位圖的大小嘛,能夠用窗口的大小
CRect rc;
GetClientRect(&rc);
MemBitmap.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
//將位圖選入到內存顯示設備中
//只有選入了位圖的內存顯示設備纔有地方繪圖,畫到指定的位圖上
CBitmap* pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色將位圖清除乾淨,這裏我用的是白色做爲背景
//你也能夠用本身應該用的顏色
MemDC.FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(255,255,255));
......//一些繪製過程
//將內存中的圖拷貝到屏幕上進行顯示
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&MemDC,0,0,SRCCOPY);
//繪圖完成後的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
尤爲是最後兩部:MemBitmap.DeleteObject();MemDC.DeleteDC();這是清理和回收內存的!