MaskBlt功能使用指定的掩码和栅格操作组合源和目标位图的颜色数据。
BOOL MaskBlt(
HDC 【hdcDest】, | //目标设备上下文的句柄 |
INT 【nXDest】, | // x-coord。的目标矩形的左上角 |
INT 【nYDest】, | //的y坐标。的目标矩形的左上角 |
INT 【nWidth】, | //源和目标矩形的宽度 |
INT 【nHeight参数】, | //源和目标矩形的高度 |
HDC 【hdcSrc】, | //处理源设备上下文 |
INT 【nXSrc】, | // x-coord。源矩形的左上角 |
INT 【nYSrc】, | //的y坐标。源矩形的左上角 |
HBITMAP 【hbmMask】, | //处理单色位掩码 |
INT 【xMask】, | //水平像素偏移到掩码位图中 |
INT 【yMask】, | //垂直像素偏移到掩码位图 |
DWORD 【dwRop】 | //光栅操作码 |
); |
参数
【hdcDest】
标识目标设备上下文。
【nXDest】
指定目标矩形左上角的逻辑x坐标。
【nYDest】
指定目标矩形左上角的逻辑y坐标。
【nWidth】
指定目标矩形和源位图的逻辑单位宽度。
【nHeight参数】
指定目标矩形和源位图的逻辑单位的高度。
【hdcSrc】
标识要从中复制位图的设备上下文。如果【dwRop】参数指定不包含源的栅格操作,则它必须为零。
【nXSrc】
指定源位图左上角的逻辑x坐标。
【nYSrc】
指定源位图左上角的逻辑y坐标。
【hbmMask】
标识与源设备上下文中的颜色位图相结合的单色蒙版位图。
【xMask】
指定由【hbmMask】参数指定的掩码位图的水平像素偏移量。
【yMask】
指定由【hbmMask】参数指定的掩码位图的垂直像素偏移量。
【dwRop】
指定功能用于控制源数据和目标数据组合的前景和背景三进制光栅操作码。背景光栅操作码存储在该值的高位字的高位字节中;前景光栅操作码存储在该值的高位字的低位字节中;该值的低位字被忽略,应为零。宏MAKEROP4创建前景和背景光栅操作代码的组合。
有关此函数上下文中前景和背景的讨论,请参阅以下备注部分。
有关常见光栅操作代码的列表,请参阅BitBlt功能。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
由【hbmMask】指定的掩码中的值为1表示应该在该位置应用【dwRop】指定的前景光栅操作码。掩码中的值为0表示应该在该位置应用【dwRop】指定的背景光栅操作码。
如果栅格操作需要源,则掩码矩形必须覆盖源矩形。如果没有,该函数将失败。如果光栅操作不需要源,则掩码矩形必须覆盖目标矩形。如果没有,该函数将失败。
如果在调用此函数时旋转或剪切变换对源设备上下文有效,则会发生错误。但是,允许其他类型的转换。
如果源,模式和目标位图的颜色格式不同,则此函数将模式或源格式或两者转换为匹配目标格式。
如果掩码位图不是单色位图,则会发生错误。
当记录增强的图元文件时,如果源设备上下文识别增强型图元文件设备上下文,则会发生错误(并且函数返回FALSE)。
并非所有设备都支持MaskBlt功能。应用程序应调用GetDeviceCaps功能来确定设备是否支持此函数。
如果没有提供掩码位图,则该函数的行为与BitBlt完全一致,使用前景光栅操作代码。
掩码位图中的像素偏移映射到源设备上下文位图中的点(0,0)。在掩码位图包含一组掩码的情况下,这是有用的;通过调整发送到MaskBlt的像素偏移量和矩形尺寸,应用程序可以轻松地将其中任何一个应用于掩码块传输任务。
也可以看看