Win32API: DrawTextEx

DrawText関数を拡張した関数です。指定された長方形の領域内に文字列をフォーマットして表示します。タブの展開や折り返し処理が可能です。


定義
Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" _
         (hDC As HDC, _
          lpchText As BytePtr, _
          cchText As Long, _
    ByRef lpRect As RECT, _
          dwDTFormat As DWord, _
    ByRef lpDTParams As DRAWTEXTPARAMS) As Long
hDC
デバイス コンテキストのハンドルを指定します。

lpchText
文字列へのポインタを指定します。

cchText
文字列のバイト数を指定します。lpStrが NULL で終わる文字列であれば、nCountには -1 を指定することもできます。

lpRect (ポインタ参照)
長方形の領域情報が入った、RECT構造体を指定します。

dwDTFormat
以下の定数を組み合わせ、任意のフォーマット方式を指定します。
定数説明
DT_BOTTOM長方形の下辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_CALCRECTテキストを表示するために必要な長方形の大きさを lpRect パラメータに格納します。テキストは描画されません。
DT_CENTERテキストを水平方向に中央揃えで表示します。
DT_EDITCONTROL複数行エディット コントロールがもつ特性と同じ特性で描画を行います。
DT_END_ELLIPSIS指定した長方形領域にテキストが収まらない場合、テキストの最後を省略符号 (...) に置き換えます。
DT_PATH_ELLIPSIS指定した長方形領域にテキストが収まらない場合、テキストの途中を省略符号 (...) に置き換えます。
DT_EXPANDTABSタブ文字を展開します。
DT_EXTERNALLEADING行の高さに、外部レディングの高さ(行間として適当な高さ)を加えます。
DT_LEFTテキストを左揃えにします。
DT_MODIFYSTRINGDT_END_ELLIPSIS フラグ、DT_PATH_ELLIPSIS フラグによって変更された文字列をlpStringに格納します。
DT_NOCLIPクリッピングを行わないようにします。
DT_NOPREFIXプリフィックス文字(「&」を次の文字のアンダースコアに置き換える、「&&」を「&」として処理する)の処理を行わないようにします。
DT_RIGHTテキストを右揃えにします。
DT_RTLREADING右から左に向かってテキストを表示します。ヘブライ語、アラビア語などを表示する場合に利用します。
DT_SINGLELINEテキストを改行せず、一行で表示します。
DT_TABSTOPタブ文字の空白文字数を設定します。このフラグを指定した場合はDRAWTEXTPARAMS構造体の iTabLength メンバで空白文字数を設定します。
DT_TOP長方形の上辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_VCENTERテキストを垂直方向の中央揃えで表示します。DT_SINGLELINEと同時に指定する必要があります。
DT_WORDBREAKテキストを複数行で表示します。折り返しは自動的に行われます。
※DT_CALCRECT、DT_EXTERNALLEADING、DT_INTERNAL、DT_NOCLIP、DT_NOPREFIX の各値は、DT_TABSTOP と組み合わせて使うことはできません。

dwDTFormat (ポインタ参照)
追加のフォーマット情報が格納されている、DRAWTEXTPARAMS構造体へのポインタを指定します。あらかじめ、cbSize メンバに構造体サイズをセットしておく必要があります。不要なときは、NULL を指定することができます。

戻り値

関数が成功すると描画したテキストの高さが返ります。失敗すると 0 が返ります。

解説

デバイス コンテキストに選択されているフォントで文字列が描画されます。文字色はSetTextColor関数を、背景モード/色はSetBkMode関数SetBkColor関数を利用して設定しておく必要があります。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


DrawText関数SetTextColor関数SetBkMode関数SetBkColor関数