CDC之CreateCompatibleDC与BitBlt
創(chuàng)建一個與指定設(shè)備一致的內(nèi)存設(shè)備描寫敘述表。
HDC?CreateCompatibleDC(HDC hdc //設(shè)備描寫敘述表句柄);
參數(shù)?hdc
現(xiàn)有的設(shè)備描寫敘述表的一個句柄,假設(shè)這個句柄為NULL,則函數(shù)創(chuàng)建一個和應用程序當前屏幕一致的內(nèi)存設(shè)備描寫敘述表。
返回值?假設(shè)函數(shù)調(diào)用成功,則返回一個內(nèi)存設(shè)備描寫敘述表句柄;否則返回NULL。
| 說明 | |
| 創(chuàng)建一個與特定設(shè)備場景一致的內(nèi)存設(shè)備場景 | |
| 返回值 | |
| Long,新設(shè)備場景句柄,若出錯則為零 | |
| 參數(shù)表 | |
| 參數(shù) | 類型及說明 |
| hdc | Long,設(shè)備場景句柄。新的設(shè)備場景將與它一致。也可能為0以創(chuàng)建一個與屏幕一致的設(shè)備場景 |
| 注解 | |
| 在繪制之前,先要為該設(shè)備場景選定一個位圖。不再須要時,該設(shè)備場景可用DeleteDC函數(shù)刪除。刪除前,其全部對象應回復初始狀態(tài) | |
BitBlt( //圖形拷貝
HMDC0, //目標設(shè)備場景
x0,y0 //目標左上角坐標
w,h //目標圖形寬、高
HMDC1, //源設(shè)備場景
x1,y1 //源左上角坐標
SRCCOPY //拷貝方式,這里是直接拷貝);
HBITMAP hbmp = (HBITMAP)::LoadImage(
AfxGetInstanceHandle(),
nidresourcename,IMAGE_BITMAP,0,0,
LR_CREATEDIBSECTION);
1.怎樣獲取應用程序的實例句柄CWinAppIm_hInstance中,用戶能夠調(diào)用AfxGetInstanceHandle獲取句柄。
?/P>
2.怎樣在代碼中獲取應用程序主窗體的指針
主框窗體的指針保存在CwinThread:: m_pMaiWnd中,能夠調(diào)用AfxGetMainWnd來獲取。以下的樣例使應用程序極小化:
AfxGetMainWnd ()->ShowWindow(SW_SHOWWMINMIZED);
CreateCompatibleDC
CDC MemDC;//首先定義一個顯示設(shè)備對象
CBitmap MemBitmap;//定義一個位圖對象
//隨后建立與屏幕顯示兼容的內(nèi)存顯示設(shè)備
MemDC.CreateCompatibleDC(NULL);
//這時還不能畫圖,由于沒有地方畫^_^
//以下建立一個與屏幕顯示兼容的位圖,至于位圖的大小嘛,能夠用窗體的大小
CRect rc;
GetClientRect(&rc);
MemBitmap.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
//將位圖選入到內(nèi)存顯示設(shè)備中
//僅僅有選入了位圖的
總結(jié)
以上是生活随笔為你收集整理的CDC之CreateCompatibleDC与BitBlt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亲测_精简版Fiddler抓包手机端GE
- 下一篇: 音乐(一)