drvTextOut 函数 (winddi.h)

DrvTextOut 函数是 GDI 中的入口点,它调用驱动程序在指定位置呈现一组字形。

语法

BOOL DrvTextOut(
  SURFOBJ  *pso,
  STROBJ   *pstro,
  FONTOBJ  *pfo,
  CLIPOBJ  *pco,
  RECTL    *prclExtra,
  RECTL    *prclOpaque,
  BRUSHOBJ *pboFore,
  BRUSHOBJ *pboOpaque,
  POINTL   *pptlOrg,
  MIX      mix
);

参数

pso

指向描述要写入的图面的 SURFOBJ 结构的指针。

pstro

指向 STROBJ 结构的指针,该结构定义要呈现的字形及其放置位置。

pfo

指向 FONTOBJ 结构的指针,从中检索有关字体及其字形的信息。

pco

指向 CLIPOBJ 结构的指针,该结构定义必须通过该剪辑区域完成所有呈现。 驱动程序不能影响剪辑区域之外的任何像素。

prclExtra

指向 RECTL 结构的指针。 在调用此函数时,GDI 始终将此参数设置为 NULL 。 驱动程序应忽略它。

prclOpaque

指向表示单个不透明矩形的 RECTL 结构的指针。 此矩形位于右下角。 此矩形中的像素 (使用不透明画笔呈现) 非前台和未剪裁的像素。 此矩形始终绑定要绘制的文本。 如果此参数为 NULL,则不呈现不透明的像素。

pboFore

指向 BRUSHOBJ 结构的指针,该结构表示要用于前景像素的画笔对象。 此画笔将始终是纯色画笔。

pboOpaque

指向表示不透明像素的 BRUSHOBJ 结构的指针。 此画笔的前景和背景混合模式都假定为R2_COPYPEN。 除非驱动程序在 DEVINFO 结构的 flGraphicsCaps 成员中设置GCAPS_ARBRUSHOPAQUE功能位,否则始终使用纯色画笔调用它。

pptlOrg

指向 POINTL 结构的指针,该结构定义两个画笔的画笔原点。

mix

混合模式,定义要用于 pboFore 指向的画笔的前景光栅操作和后台光栅操作。 有关混合模式的详细信息,请参阅备注。

返回值

如果函数成功,则返回值为 TRUE ;否则为 FALSE

注解

DrvTextOut 的输入参数定义两组像素:前台和不透明。 驱动程序必须呈现图面,以便结果与先使用不透明画笔呈现不透明像素,然后使用前景画笔呈现前景像素的过程相同。 其中每个操作都受剪裁的限制。

前景和不透明像素被视为一个屏幕,通过屏幕将颜色刷到表面上。 字体的字形本身没有颜色。

DrvTextOut 的输入参数定义字形像素集、额外矩形集、不透明矩形和剪辑区域。 驱动程序负责计算并呈现前景和不透明像素集。

GDI 保证 DrvTextOutDrvDestroyFont 永不重叠;因此,驱动程序在处理 DrvTextOut 调用时可以依赖于缓存的信息。

混合模式定义传入模式应如何与设备图面上已有的数据混合。 MIX 数据类型包含两个二进制光栅操作, (ROP2) 值打包到单个 ULONG 中。 最低顺序字节定义前台光栅操作;下一个字节定义后台光栅操作。 有关光栅操作代码的详细信息,请参阅Microsoft Windows SDK文档。

这是一个有条件的必需函数。

要求

   
目标平台 桌面
标头 winddi.h (包括 Winddi.h)

另请参阅

CLIPOBJ

DEVINFO

DrvDestroyFont

FONTOBJ

STROBJ

SURFOBJ