MaskBlt

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);

主要參數


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