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 保证 DrvTextOut 和 DrvDestroyFont 永不重叠;因此,驱动程序在处理 DrvTextOut 调用时可以依赖于缓存的信息。
混合模式定义传入模式应如何与设备图面上已有的数据混合。 MIX 数据类型包含两个二进制光栅操作, (ROP2) 值打包到单个 ULONG 中。 最低顺序字节定义前台光栅操作;下一个字节定义后台光栅操作。 有关光栅操作代码的详细信息,请参阅Microsoft Windows SDK文档。
这是一个有条件的必需函数。
要求
目标平台 | 桌面 |
标头 | winddi.h (包括 Winddi.h) |