ExtTextOut函数使用当前选定的字体绘制一个字符串。可以提供一个可选的矩形,用于剪裁,不透明或两者。
BOOL ExtTextOut(
HDC 【HDC】, | //处理设备上下文 |
INT 【X】, | //参考点的x坐标 |
INT 【Y】, | //参考点的y坐标 |
UINT 【fuOptions】, | //文本输出选项 |
CONST RECT 【* LPRC】, | //可选剪裁和/或opaquing矩形 |
LPCTSTR 【lpString】, | //指向字符串 |
UINT 【cbCount】, | //字符串中的字符数 |
CONST INT 【* lpDx】 | //指向字符间距值数组的指针 |
); |
参数
【HDC】
标识设备上下文。
【X】
指定用于定位字符串的参考点的逻辑x坐标。
【Y】
指定用于定位字符串的参考点的逻辑y坐标。
【fuOptions】
指定如何使用应用程序定义的矩形。此参数可以是以下值的组合:
值 | 含义 |
ETO_CLIPPED | 文本将被剪切到矩形。 |
ETO_GLYPH_INDEX | 仅Windows 95: 【lpString】数组是指从GetCharacterPlacement返回的数组,应由GDI直接解析,因为不需要进一步的语言特定处理。字形索引仅适用于TrueType字体,但该标志可用于Windows位图和矢量字体,表示无需进一步的语言处理,GDI应直接处理字符串。请注意,即使字符串被假定为栅格字体的8位值数组,所有字形索引都是16位值。 |
ETO_OPAQUE | 当前的背景颜色应该用来填充矩形。 |
ETO_RTLREADING | 仅Windows 95:如果指定了此值,并在设备上下文中选择了希伯来语或阿拉伯语字体,则使用从右到左的读取顺序输出字符串。如果未指定此值,则以从左到右的顺序输出字符串。通过在SetTextAlign中设置TA_RTLREADING值可以获得相同的效果。此值保留为向后兼容性。 |
ETO_GLYPH_INDEX和ETO_RTLREADING值不能一起使用。因为ETO_GLYPH_INDEX意味着所有语言处理已经完成,所以如果同时指定了该函数,该函数将忽略ETO_RTLREADING标志。
【LPRC】
指向可选的RECT结构,指定用于裁剪,opaquing或两者的矩形的尺寸。
【lpString】
指向要绘制的字符串。该字符串不需要为零终止,因为【cbCount】指定字符串的长度。
【cbCount】
指定字符串中的字符数。
【lpDx】
指向可选的数组数组,指示相邻字符单元格的起始点之间的距离。例如,【lpDx】 [【i】]逻辑单元分离字符单元格【i】和字符单元格【i】 + 1的起始位置。
返回值
如果绘制字符串,则返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
指定设备上下文的当前文本对齐设置决定了参考点如何定位文本。通过调用GetTextAlign函数检索文本对齐设置。通过调用SetTextAlign函数来更改文本对齐设置。
如果【lpDx】参数为NULL,则ExtTextOut函数使用字符之间的默认间距。字符单元格起始和【lpDx】参数指向的数组的内容以逻辑单位给出。字符单元原点定义为字符单元格的左上角。
默认情况下,此函数不会使用或更新当前位置。但是,应用程序可以将【FMODE】参数设置为TA_UPDATECP来调用SetTextAlign函数,以允许Windows在每个应用程序为指定的设备上下文调用ExtTextOut时使用和更新当前位置。设置此标志时,Windows会在随后的ExtTextOut呼叫中忽略【X】和【Y】参数。
也可以看看