Win32API: DrawText

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


定義
Declare Function DrawText Lib "user32" Alias "DrawTextA" _
         (hdc As HDC, _
          lpStr As BytePtr, _
          nCount As Long, _
    ByRef lpRect As RECT, _
          dwFormat As DWord) As Long
hdc
デバイス コンテキストのハンドルを指定します。

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

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

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

dwFormat
以下の定数を組み合わせ、任意のフォーマット方式を指定します。
定数説明
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タブ文字の空白文字数を設定します。このフラグを指定した場合は uFormat パラメータの15ビットから8ビット(下位ワードの上位バイト)で空白文字数を設定します。
DT_TOP長方形の上辺にテキストを揃えます。DT_SINGLELINEと同時に指定する必要があります。
DT_VCENTERテキストを垂直方向の中央揃えで表示します。DT_SINGLELINEと同時に指定する必要があります。
DT_WORDBREAKテキストを複数行で表示します。折り返しは自動的に行われます。
※DT_CALCRECT、DT_EXTERNALLEADING、DT_INTERNAL、DT_NOCLIP、DT_NOPREFIX の各値は、DT_TABSTOP と組み合わせて使うことはできません。

戻り値

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

解説

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

環境情報

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


DrawTextEx関数SetTextColor関数SetBkMode関数SetBkColor関数