描述
ExtTextOut功能使用当前选择的字体,背景颜色和文本颜色绘制文本。您可以选择提供要用于裁剪,opaquing或两者的尺寸。
C++ 语法
BOOL ExtTextOut( __in HDC hdc, __in int X, __in int Y, __in UINT fuOptions, __in const RECT *lprc, __in LPCTSTR lpString, __in UINT cbCount, __in const INT *lpDx ); |
PowerBASIC 语法
FUNCTION ExtTextOutA ( _ BYVAL hdc AS DWORD, _ BYVAL X AS LONG, _ BYVAL Y AS LONG, _ BYVAL fuOptions AS DWORD, _ BYREF lprc AS RECT, _ BYREF lpString AS ASCIIZ, _ BYVAL cbCount AS DWORD, _ BYREF lpDx AS LONG _ ) AS LONG |
Unicode版本:
FUNCTION ExtTextOutW ( _ BYVAL hdc AS DWORD, _ BYVAL X AS LONG, _ BYVAL Y AS LONG, _ BYVAL fuOptions AS DWORD, _ BYREF lprc AS RECT, _ BYREF lpString AS WSTRINGZ, _ BYVAL cbCount AS DWORD, _ BYREF lpDx AS LONG _ ) AS LONG |
参数
hdc
[in]处理设备上下文。
X
[in]指定用于定位字符串的参考点的x坐标(以逻辑坐标)。
Y
[in]指定用于定位字符串的参考点的逻辑坐标中的y坐标。
fuOptions
[in]指定如何使用应用程序定义的矩形。此参数可以是以下值中的一个或多个。
值 |
含义 |
ETO_CLIPPED |
文本将被剪切到矩形。 |
ETO_GLYPH_INDEX |
Windows 95和Windows NT 4.0及更高版本:lpString数组是指从GetCharacterPlacement返回的数组,应由GDI直接解析,因为不需要进一步的语言特定处理。字形索引仅适用于TrueType字体,但该标志可用于位图和矢量字体,以指示不需要进一步的语言处理,GDI应直接处理字符串。请注意,即使字符串被假定为栅格字体的8位数组,所有字形索引都是16位值。
对于ExtTextOutW,字形索引将保存到图元文件。但是,为了显示正确的字符,元文件必须使用相同的字体进行播放。对于ExtTextOutA,字形索引不会保存。 |
ETO_IGNORELANGUAGE |
Windows NT 4.0及更高版本:保留供系统使用。如果一个应用程序设置这个标志,它将失去国际脚本支持,在某些情况下,它可能根本不显示文本。 |
ETO_NUMERICSLATIN |
Windows 95和Windows NT 4.0及更高版本:要显示数字,请使用欧洲数字。 |
ETO_NUMERICSLOCAL |
Windows 95和Windows NT 4.0及更高版本:要显示数字,请使用适合本地区域的数字。 |
ETO_OPAQUE |
当前的背景颜色应该用来填充矩形。 |
ETO_PDY |
Windows 2000 / XP / Vista / Windows 7:设置此选项时,lpDx指向的数组包含值对。每对的第一个值通常是相邻字符单元的起点之间的距离,但第二个值是沿字体垂直方向的位移。 |
ETO_RTLREADING |
Windows 95和Windows NT 4.0及更高版本用于Windows的中东语言版本:如果指定了此值,并在设备上下文中选择了希伯来语或阿拉伯字体,则使用从右到左的读取顺序输出字符串。如果未指定此值,则以从左到右的顺序输出字符串。通过在SetTextAlign中设置TA_RTLREADING值可以获得相同的效果。此值保留为向后兼容性。 |
ETO_GLYPH_INDEX和ETO_RTLREADING值不能一起使用。因为ETO_GLYPH_INDEX意味着所有语言处理已经完成,所以如果同时指定了该函数,该函数将忽略ETO_RTLREADING标志。
lprc
[in]指向可选RECT结构的指针,用于指定用于裁剪,opaquing或两者的矩形的逻辑坐标中的维度。
lpString
[in]指向要绘制的文本的字符串的指针。字符串不需要为零终止,因为cbCount指定字符串的长度。
cbCount
[in]指定lpString指向的字符串的长度。
Windows 95/98 / Me:此值不得超过8192。
lpDx
[in]指向可选数组值的指针,指示相邻字符单元格的起始点之间的距离。例如,lpDx [i]逻辑单元分离字符单元格i和字符单元格i+ 1的起始位置。
返回值
如果绘制字符串,则返回值不为零。但是,如果使用ETO_GLYPH_INDEX调用ANSI版本的ExtTextOut,即使该函数什么也不做,该函数返回TRUE。
如果函数失败,返回值为零。
备注
虽然一般不是真的,Windows 95/98 / Me支持此函数的Unicode版本以及ANSI版本。
指定设备上下文的当前文本对齐设置决定了参考点如何定位文本。通过调用GetTextAlign功能检索文本对齐设置。通过调用SetTextAlign函数来更改文本对齐设置。
如果lpDx参数为NULL,则ExtTextOut函数使用字符之间的默认间距。字符单元格起始和lpDx参数指向的数组的内容以逻辑单位指定。字符单元原点被定义为字符单元格的左上角。
默认情况下,此函数不会使用或更新当前位置。但是,应用程序可以将FMODE参数设置为TA_UPDATECP来调用SetTextAlign函数,以允许系统在每次应用程序为指定的设备上下文调用ExtTextOut时使用和更新当前位置。设置此标志时,系统会忽略后续ExtTextOut呼叫中的X和Y参数。
对于ANSI版本的ExtTextOut,lpDx数组的ID值与lpString中的字节数相同。对于DBCS字符,只要两个字节的总和达到所需的dx,就可以在引导字节和跟踪字节之间的lpDx条目中分配dx。对于具有Unicode版本ExtTextOut的DBCS字符,每个Unicode字形获取单个pdx条目。
请注意,GetTextExtentExPoint?? alpDx的值与ExtTextOut的lpDx值不同。要使用lpDx中的alpDx值,必须先处理它们。
Windows 95/98 / Me:Microsoft Layer for Unicode支持ExtTextOutW.
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)


