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);
hdcSrc:指向源
位图所在的设备环境,如果dwRop参数规定的光栅操作不包括源位图,那么该参数必须为0。
dwRop:指定前景和背景光栅
操作码,函数使用这些
操作码为控制源和目标数据的组合。背景光栅
操作码存储在该参数值的高位字中的高位
字节中,而前景光栅操作代码雄在该参数值的高位字中的低位字节中,而低位字则忽略,并且应该为0。宏MAKEROP4创建前景和背景光栅
操作码这样的组合。
在由hbmMask指定的掩码中,数值1表示在那个位置应使用dwRop指定的前景光栅
操作码。数值0表示应使用dwRop指定的背景光栅操作码。如果光栅操作需要源对象,那么掩码矩形必须覆盖源矩形。如果没有覆盖,那么函数会执行失败。如果光栅操作没有要求源对象,那么掩码矩形必须覆盖目标矩形,如果没有覆盖,那么函数会失败。如果在调用函数时,源设备环境中实行旋转或
剪切变换,那么会出现错误。然而,允许有其他类型的变换。如果源
位图的颜色格式、模式和目标位图不一样,那么该函数对模式或源位图格式,或者两者进行转换,以与目标格式匹配。如果掩码
位图不是单色位图,则会出现错误。当正在记录的是增强型
图元文件时,如果源设备环境标识为增强型图元文件设备环境,那么会出现错误(该函数返回FALSE)。不是所有设备都支持MaskBlt函数,应用程序应调用GETDeviceCaps函数来确定设备是否支持该函数。如果没有提供掩码
位图,那么该函数非常类似BitBlt,它使用前景光栅
操作码。
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。