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
);

参数

pSprite [in]

类型: LPD3DXSPRITE

指向包含字符串的 ID3DXSprite 对象的指针。 可以为 NULL,在这种情况下,Direct3D 将使用其自己的子画面对象呈现字符串。 为了提高效率,应在一行中多次调用 DrawText 时指定子画面对象。

pString [in]

类型: LPCTSTR

指向要绘制的字符串的指针。 如果 Count 参数为 -1,则字符串必须以 null 结尾。

计数 [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格式,否则假定所有格式都具有多个行。

如果所选字体太大,则此方法不会尝试替换较小的字体。

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

要求

要求 Value
标头
D3dx9core.h

D3dx9.lib

另请参阅

ID3DXFont