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格式,否则假定所有格式都包含多行。

如果所选字体对于矩形来说太大,此方法不会尝试替换较小的字体。

此方法仅支持转义和方向均为零的字体。

要求

要求
标头
D3dx9core.h

D3dx9.lib

另请参阅

ID3DXFont