複製鏈接
請複製以下鏈接發送給好友

MaskBlt

鎖定
MaskBlt是一款計算機函數,可以使用特定的掩碼和光柵操作來對源和目標位圖的顏色數據進行組合。
中文名
MaskBlt
函數原型
BOOL MaskBlt
所屬類
CImage;CImage::MaskBlt

MaskBlt函數原型

BOOL MaskBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, HBITMAP hbmMask, int xMask, int yMask, DWORD dwRop);
所屬類:CImage;CImage::MaskBlt。

MaskBlt參數

hdcDest:指向目標設備環境的句柄。
nXDest:指定目標矩形左上角的邏輯X軸座標。
nYDest:指定目標矩形左上角的邏輯Y軸座標。
nWidth:指定目標矩形和源位圖的寬度,按邏輯單位。
nHeight:指定目標矩形和源位圖的高度,按邏輯單位。
hdcSrc:指向源位圖所在的設備環境,如果dwRop參數規定的光柵操作不包括源位圖,那麼該參數必須為0。
nXSrc:指定源位圖左上角的邏輯X軸座標。
nYSrc:指定源位圖左上角的Y軸邏輯座標。
hbmMask:指向單色掩碼位圖的句柄,該位圖與源設備環境中的彩色位圖進行組合。
xMask:指定由參數hbmMask指向的掩碼位圖的水平像素偏移量
yMask:指定由參數hbmMask指向的掩碼位圖的垂直像素偏移量
dwRop:指定前景和背景光柵操作碼,函數使用這些操作碼為控制源和目標數據的組合。背景光柵操作碼存儲在該參數值的高位字中的高位字節中,而前景光柵操作代碼雄在該參數值的高位字中的低位字節中,而低位字則忽略,並且應該為0。宏MAKEROP4創建前景和背景光柵操作碼這樣的組合。
返回值:如果函數執行成功,那麼返回值為非零,如果函數失敗,那麼返回值為0。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函數。

MaskBlt前景和背景

在由hbmMask指定的掩碼中,數值1表示在那個位置應使用dwRop指定的前景光柵操作碼。數值0表示應使用dwRop指定的背景光柵操作碼。如果光柵操作需要源對象,那麼掩碼矩形必須覆蓋源矩形。如果沒有覆蓋,那麼函數會執行失敗。如果光柵操作沒有要求源對象,那麼掩碼矩形必須覆蓋目標矩形,如果沒有覆蓋,那麼函數會失敗。如果在調用函數時,源設備環境中實行旋轉或剪切變換,那麼會出現錯誤。然而,允許有其他類型的變換。如果源位圖的顏色格式、模式和目標位圖不一樣,那麼該函數對模式或源位圖格式,或者兩者進行轉換,以與目標格式匹配。如果掩碼位圖不是單色位圖,則會出現錯誤。當正在記錄的是增強型圖元文件時,如果源設備環境標識為增強型圖元文件設備環境,那麼會出現錯誤(該函數返回FALSE)。不是所有設備都支持MaskBlt函數,應用程序應調用GETDeviceCaps函數來確定設備是否支持該函數。如果沒有提供掩碼位圖,那麼該函數非常類似BitBlt,它使用前景光柵操作碼
ICM:當出現尖頭消息時,不進行顏色管理。
Windows CE:Windows CE 1.0版只支持SRCCOPY和SRCINVERT光柵操作。該函數在Windows CE 2.0版與其他Windows桌面平台一樣。
速查:Windows NT:3.1及以上版本;Windows:不支持;Windows CE:1.0及以上版本;頭文件:wingdi.h;庫文件:gdi32.lib。