EngTransparentBlt 函数 (winddi.h)

EngTransparentBlt 函数提供具有透明度的位块传输功能。

语法

ENGAPI BOOL EngTransparentBlt(
  [in]           SURFOBJ  *psoDst,
  [in]           SURFOBJ  *psoSrc,
  [in, optional] CLIPOBJ  *pco,
  [in, optional] XLATEOBJ *pxlo,
  [in]           RECTL    *prclDst,
  [in]           RECTL    *prclSrc,
  [in]           ULONG    TransColor,
  [in]           ULONG    bCalledFromBitBlt
);

参数

[in] psoDst

指向 SURFOBJ 结构的指针,该结构标识要绘制的目标图面。

[in] psoSrc

指向 SURFOBJ 结构的指针,该结构标识位块传输的源图面。

[in, optional] pco

指向 CLIPOBJ 结构的指针。 CLIPOBJ_Xxx 服务例程用于将剪辑区域枚举为一组矩形。 此枚举限制已修改的目标区域。 只要可能,GDI 就可以简化所涉及的剪裁。

[in, optional] pxlo

指向 XLATEOBJ 结构的指针,该结构指示应如何转换源颜色索引以写入目标图面。

[in] prclDst

指向 RECTL 结构的指针,该结构定义要修改的矩形区域。 此矩形在目标图面的坐标系中指定,由两个点定义:左上角和右下角。 矩形右下角排他;也就是说,其下边缘和右边缘不是位块传输的一部分。 定义矩形的两个点始终按顺序排列。

驱动程序不得使用空目标矩形调用 EngTransparentBlt

[in] prclSrc

指向 RECTL 结构的指针,该结构定义要复制的矩形区域。 此矩形在源图面的坐标系中指定,由两个点定义:左上角和右下角。 定义矩形的两个点始终按顺序排列。

源矩形永远不会超过源图面的边界,因此永远不会悬停在源图面上。

此矩形映射到 由 prclDst 定义的目标矩形。 驱动程序不得使用空源矩形调用 EngTransparentBlt

[in] TransColor

以源图面的格式指定物理透明颜色。 这是已转换为源图面调色板的颜色索引值。 有关详细信息,请参阅备注部分。

[in] bCalledFromBitBlt

保留。 该参数必须设置为零。

返回值

成功后,EngTransparentBlt 返回 TRUE 。 否则,它将返回 FALSE

注解

驱动程序应调用 EngTransparentBlt ,如果它已挂钩 DrvTransparentBlt ,并且调用它来执行它不支持的事情。

支持在两个 设备管理的图面之间或设备管理的表面 与 GDI 管理的标准格式位图之间传输具有透明度的位块传输。 目前,GDI 仅支持BMF_4BPP和BMF_8BPP源图面。

不会复制源图面上与 iTransparentColor 指定的透明颜色匹配的像素。 有关透明布图的详细说明,请参阅 复制位图

要求

要求
最低受支持的客户端 适用于 Windows 2000 及更高版本的 Windows 操作系统。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys

另请参阅

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngBitBlt

EngPlgBlt

EngStretchBlt

EngStretchBltROP