EngTextOut 函数 (winddi.h)
EngTextOut 函数导致 GDI 在指定位置呈现一组字形。
语法
ENGAPI BOOL EngTextOut(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlOrg,
[in] MIX mix
);
参数
pso
指向描述要写入的图面的 SURFOBJ 结构的指针。
pstro
指向 STROBJ 结构的指针,该结构定义要呈现的字形及其放置位置。
pfo
指向 FONTOBJ 结构的指针,该结构用于检索有关字体及其字形的信息。
pco
指向 CLIPOBJ 结构的指针,该结构定义必须完成呈现的剪辑区域。 在此剪辑区域之外,任何像素都不能受到影响。
prclExtra
指向 RECTL 结构的指针。 此参数应始终为 NULL。
prclOpaque
指向 RECTL 结构的指针,该结构标识右下角独占的单个不透明矩形。 此矩形中的像素 (非前台且未剪裁) 的像素将用不透明画笔呈现。 此矩形始终绑定要绘制的文本。 如果此参数为 NULL,则不呈现不透明的像素。
pboFore
指向 BRUSHOBJ 结构的指针,该结构表示要用于前景像素的画笔对象。 此画笔将始终是纯色画笔。
pboOpaque
指向 BRUSHOBJ 结构的指针,该结构表示不透明像素的画笔对象。 假定此画笔的前景和背景混合模式都是R2_COPYPEN。 除非驱动程序在 DEVINFO 结构的 flGraphicsCaps 成员中设置GCAPS_ARBRUSHOPAQUE功能位,否则始终使用纯色画笔调用它。
pptlOrg
指向定义两个画笔的画笔原点的 POINTL 结构的指针。 如果在调用 EngTextOut 时此参数设置为 0,某些打印机驱动程序可能会错误地打印彩色图像。 有关更多信息,请参见备注。
[in] mix
指定 pboFore (混合模式) 的前景和背景光栅操作。
返回值
如果函数成功,则返回值为 TRUE 。 否则,它为 FALSE,并记录错误代码。
注解
驱动程序在已挂钩 DrvTextOut 且无法呈现字形时,应调用 EngTextOut 。
当此函数的 pptlOrg 参数设置为 0 时,某些打印机驱动程序在 Microsoft Windows Server 2003 中错误地打印彩色图像 (日文版本) 。 将 pptlOrg 设置为 0( NULL 指针值)被解释为未定义画笔原点。 若要防止此问题,请在调用 EngTextOut 之前,使用成员设置为 (0,0) 的 POINTL 结构的地址初始化 pptlOrg。
前景和不透明像素被视为一个屏幕,通过屏幕将颜色刷到表面上。 字体的字形本身没有颜色。
EngTextOut 的输入参数定义字形像素集、额外矩形集、不透明矩形和剪辑区域。 驱动程序必须计算并呈现前台和不透明像素集。
混合模式定义传入模式应如何与设备图面上已有的数据混合。 MIX 数据类型由打包到单个 ULONG 中的两个 ROP2 值组成。 低序字节定义前台光栅操作;下一个字节定义背景光栅操作。 有关光栅操作代码的详细信息,请参阅Microsoft Windows SDK文档。
要求
最低受支持的客户端 | 适用于 Windows 2000 及更高版本的 Windows 操作系统。 |
目标平台 | 通用 |
标头 | winddi.h (包括 Winddi.h) |
Library | Win32k.lib |
DLL | Win32k.sys |