MaskBlt 函数 (wingdi.h) |
您所在的位置:网站首页 › 掩码位图 › MaskBlt 函数 (wingdi.h) |
MaskBlt 函数 (wingdi.h)
项目
03/08/2023
MaskBlt 函数使用指定的掩码和光栅操作合并源位图和目标位图的颜色数据。 语法 BOOL MaskBlt( [in] HDC hdcDest, [in] int xDest, [in] int yDest, [in] int width, [in] int height, [in] HDC hdcSrc, [in] int xSrc, [in] int ySrc, [in] HBITMAP hbmMask, [in] int xMask, [in] int yMask, [in] DWORD rop ); 参数[in] hdcDest 目标设备上下文的句柄。 [in] xDest 目标矩形左上角的 x 坐标(以逻辑单位为单位)。 [in] yDest 目标矩形左上角的 y 坐标(以逻辑单位为单位)。 [in] width 目标矩形和源位图的宽度(以逻辑单元表示)。 [in] height 目标矩形和源位图的高度(以逻辑单元表示)。 [in] hdcSrc 要从中复制位图的设备上下文的句柄。 如果 dwRop 参数指定不包含源的光栅操作,则必须为零。 [in] xSrc 源位图左上角的 x 坐标(以逻辑单位为单位)。 [in] ySrc 源位图左上角的 y 坐标(以逻辑单位为单位)。 [in] hbmMask 单色掩码位图的句柄,与源设备上下文中的颜色位图组合在一起。 [in] xMask hbmMask 参数指定的掩码位图的水平像素偏移量。 [in] yMask hbmMask 参数指定的掩码位图的垂直像素偏移量。 [in] rop 前台和后台三元光栅操作代码 (ROP) 函数用来控制源数据和目标数据的组合。 背景光栅操作码存储在此值高位字的高位字节中;前景光栅操作码存储在此值高位字的低位字节中;此值的低位字被忽略,应为 0。 宏 MAKEROP4 创建前台和背景光栅操作代码的此类组合。 有关此函数上下文中前景和背景的讨论,请参阅以下“备注”部分。 有关 (ROP) 的常见光栅操作代码列表,请参阅 BitBlt 函数。 请注意,CAPTUREBLT ROP 通常不能用于打印设备上下文。 返回值如果该函数成功,则返回值为非零值。 如果函数失败,则返回值为零。 注解MaskBlt 函数使用依赖于设备的位图。 hbmMask 指定的掩码中的值 1 表示应在该位置应用 dwRop 指定的前台光栅操作代码。 掩码中的值 0 表示应在该位置应用 dwRop 指定的后台光栅操作代码。 如果光栅操作需要源,则掩码矩形必须覆盖源矩形。 如果没有,该函数将失败。 如果光栅操作不需要源,则掩码矩形必须覆盖目标矩形。 如果没有,该函数将失败。 如果调用此函数时源设备上下文的旋转或扭曲转换有效,则会发生错误。 但是,允许其他类型的转换。 如果源位图、图案位图和目标位图的颜色格式不同,则此函数转换图案和/或源格式以匹配目标格式。 如果掩码位图不是单色位图,则会发生错误。 记录增强的图元文件时, (发生错误,如果源设备上下文标识增强型图元文件设备上下文,函数将返回 FALSE) 。 并非所有设备都支持 MaskBlt 函数。 应用程序应使用 nIndex 参数作为RC_BITBLT调用 GetDeviceCaps 函数,以确定设备是否支持此函数。 如果未提供掩码位图,则此函数的行为与 BitBlt 完全相同,使用前台光栅操作代码。 Icm: 当出现 blit 时,不会执行颜色管理。 在多个监视器系统中使用时, hdcSrc 和 hdcDest 都必须引用同一设备,否则该函数将失败。 若要在不同设备的 DC 之间传输数据,请通过调用 GetDIBit 将内存位图 (兼容的位图或 DDB) 转换为 DIB。 若要向第二台设备显示 DIB,请调用 SetDIBits 或 StretchDIBits。 要求 最低受支持的客户端 Windows 2000 Professional [仅限桌面应用] 最低受支持的服务器 Windows 2000 Server [仅限桌面应用] 目标平台 Windows 标头 wingdi.h (包括 Windows.h) Library Gdi32.lib DLL Gdi32.dll 另请参阅BitBlt 位图函数 位图概述 GetDIBits GetDeviceCaps PlgBlt SetDIBits StretchBlt StretchDIBits |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |