VC++ 使用BitBlt函数显示位图
BitBlt 函數
該函數對指定的源設備環境區域中的像素進行位塊(bit_block)轉換,以傳送到目標設備環境。
原型: ?
BOOL BitBlt(
? ? HDC ?hdcDest,
? ? int ?nXDest, ?int ?nYDest, ?int ?nWidth, ?int ?nHeight,
? ? HDC ?hdcSrc,
? ? int ?nXSrc, ?int ?nYSrc,
? ? DWORD ?dwRop);
參數: ? ?
hdcDest:指向目標設備環境的句柄。
nXDest、nYDest:指定目標矩形區域左上角的X軸和Y軸邏輯坐標
nWidth、nHeight:指定源和目標矩形區域的邏輯寬度和邏輯高度。
hdcSrc:指向源設備環境的句柄。
nXSrc、nYSrc:指定源矩形區域左上角的X軸和Y軸邏輯坐標。
dwRop:指定光柵操作代碼。這些代碼將定義源矩形區域的顏色數據,如何與目標矩形區域的顏色數據組合以完成最后的顏色。下面列出了一些常見的光柵操作代碼:
?
BLACKNESS
表示使用與物理調色板的索引0相關的色彩來填充目標矩形區域,(對缺省的物理調色板而言,該顏色為黑色)。
DSTINVERT
表示使目標矩形區域顏色取反。
MERGECOPY?
表示使用布爾型AND(與)操作符將源矩形區域的顏色與特定模式組合一起。
MERGEPAINT
通過使用布爾型OR(或)操作符將源矩形區域的顏色取反后與目標矩形區域的顏色合并。
NOTSRCCOPY
將源矩形區域顏色取反,拷貝到目標矩形區域。
NOTSRCERASE
使用布爾類型的OR(或)操作符組合源和目標矩形區域的顏色值,然后將合成的顏色取反。
PATCOPY
將特定的模式拷貝到目標位圖上。
PATINVERT
通過使用布爾型XOR(異或)操作符將源和目標矩形區域內的顏色合并。
PATPAINT
通過使用布爾型OR(或)操作符將源矩形區域取反后的顏色值與特定模式的顏色合并。然后使用OR(或)操作符將該操作的結果與目標矩形區域內的顏色合并。
SRCAND
通過使用布爾型AND(與)操作符來將源和目標矩形區域內的顏色合并。
SRCCOPY
將源矩形區域直接拷貝到目標矩形區域。
SRCERASE
通過使用布爾型AND(與)操作符將目標矩形區域顏色取反后與源矩形區域的顏色值合并。
SRCINVERT
通過使用布爾型XOR(異或)操作符將源和目標矩形區域的顏色合并。
SRCPAINT
通過使用布爾型OR(或)操作符將源和目標矩形區域的顏色合并。
WHITENESS
使用與物理調色板中索引1有關的顏色填充目標矩形區域。(對于缺省物理調色板來說,這個顏色就是白色)。
?
win7, vc6;新建單文檔工程;引入一個位圖資源;出現下圖錯誤不管;
代碼;
void CWeituView::OnDraw(CDC* pDC) {CWeituDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP1);BITMAP bt;CDC mendc;bitmap.GetBitmap(&bt);mendc.CreateCompatibleDC(NULL);mendc.SelectObject(&bitmap);pDC->BitBlt(0,0,bt.bmWidth,bt.bmHeight,&mendc,0,0,SRCCOPY); }加載位圖效果如下;
?
總結
以上是生活随笔為你收集整理的VC++ 使用BitBlt函数显示位图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win32文件读写demo
- 下一篇: 超图三维数据处理学习摘要1