勇芳软件工作室.汉化:  Fonts and Text > Fonts and Text Functions >

ExtTextOut

Previous pageReturn to chapter overviewNext page

描述

 

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呼叫中的XY参数。

 

对于ANSI版本的ExtTextOutlpDx数组的ID值与lpString中的字节数相同。对于DBCS字符,只要两个字节的总和达到所需的dx,就可以在引导字节和跟踪字节之间的lpDx条目中分配dx。对于具有Unicode版本ExtTextOut的DBCS字符,每个Unicode字形获取单个pdx条目。

 

请注意,GetTextExtentExPoint?? alpDx的值与ExtTextOutlpDx值不同。要使用lpDx中的alpDx值,必须先处理它们。

 

Windows 95/98 / Me:Microsoft Layer for Unicode支持ExtTextOutW.

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)