ID3DXFont::D rawText 方法
绘制格式化文本。 此方法支持 ANSI 和 Unicode 字符串。
语法
INT DrawText(
[in] LPD3DXSPRITE pSprite,
[in] LPCTSTR pString,
[in] INT Count,
[in] LPRECT pRect,
[in] DWORD Format,
[in] D3DCOLOR Color
);
parameters
-
pSprite [in]
-
类型: LPD3DXSPRITE
指向包含字符串的 ID3DXSprite 对象的指针。 可以为 NULL,在这种情况下,Direct3D 将使用其自己的子画面对象呈现字符串。 为了提高效率,如果要在一行中多次调用 DrawText ,则应指定子画面对象。
-
pString [in]
-
类型: LPCTSTR
指向要绘制的字符串的指针。 如果 Count 参数为 -1,则字符串必须以 null 结尾。
-
Count [in]
-
类型: INT
指定字符串中的字符数。 如果 Count 为 -1,则假定 pString 参数是指向以 null 结尾的字符串的指针, DrawText 会自动计算字符计数。
-
pRect [in]
-
类型: LPRECT
指向 RECT 结构的指针,该结构包含要设置文本格式的逻辑坐标矩形。 矩形右侧的坐标值必须大于其左侧的坐标值。 同样,底部的坐标值必须大于顶部的坐标值。
-
格式 [in]
-
类型: DWORD
指定格式化文本的方法。 它可为以下值的任意组合:
值 含义 - DT_BOTTOM
使文本与矩形底部对齐。 此值必须与 DT_SINGLELINE 结合使用。 - DT_CALCRECT
确定矩形的宽度和高度。 如果存在多行文本, DrawText 将使用 pRect 参数指向的矩形的宽度,并扩展矩形的基底以绑定最后一行文本。 如果只有一行文本, DrawText 将修改矩形的右侧,使其绑定行中的最后一个字符。 在任一情况下, DrawText 都返回格式化文本的高度,但不绘制文本。 - DT_CENTER
在矩形中水平居中居中文本。 - DT_EXPANDTABS
扩展制表符。 每个制表符的默认字符数是 8。 - DT_LEFT
将文本向左对齐。 - DT_NOCLIP
绘制时不进行剪裁。 使用 DT_NOCLIP 时,DrawText 的速度会稍快一些。 - DT_RIGHT
将文本向右对齐。 - DT_RTLREADING
选择希伯来语或阿拉伯文字体时,按从右到左阅读顺序显示双向文本的文本。 所有文本的默认阅读顺序都是从左到右。 - DT_SINGLELINE
仅显示单行上的文本。 回车符和换行符不会中断该行。 - DT_TOP
上对齐文本。 - DT_VCENTER
文本垂直居中 (单行仅) 。 - DT_WORDBREAK
中断字词。 如果单词超出 pRect 参数指定的矩形边缘,则单词之间的行会自动断开。 回车符/换行序列也会中断该行。 -
颜色 [in]
-
类型: D3DCOLOR
文本的颜色。 有关详细信息,请参阅 D3DCOLOR。
返回值
类型: INT
如果函数成功,则返回值是文本的高度(以逻辑单位为单位)。 如果指定了DT_VCENTER或DT_BOTTOM,则返回值为从所绘制文本) (pRect 的偏移量。 如果函数失败,则返回值为零。
注解
此方法的参数与 GDI DrawText 函数的参数非常相似。
此方法同时支持 ANSI 和 Unicode 字符串。
必须在 BeginScene ... 中调用此方法。 EndScene 块。 唯一的例外是应用程序使用DT_CALCRECT调用 DrawText 来计算给定文本块的大小。
除非使用DT_NOCLIP格式,否则此方法将剪裁文本,使其不显示在指定矩形之外。 除非指定了DT_SINGLELINE格式,否则假定所有格式都包含多行。
如果所选字体对于矩形来说太大,此方法不会尝试替换较小的字体。
此方法仅支持转义和方向均为零的字体。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅