共用方式為


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 會以自己的 Sprite 物件轉譯字串。 為了提升效率,如果 DrawText 在資料列中多次呼叫 DrawText ,就應該指定 sprite 物件。

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
展開定位字元。 每個定位預設有八個字元。
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