指定の矩形領域内にテキストを出力する
Declare Function DrawText Lib "user32.dll" Alias "DrawTextA" _
(ByVal hdc As Long, ByVal lpString As String, ByVal nCount As Long, _
lpRect As RECT, ByVal uFormat As Long) As Long
Declare Function DrawText Lib "user32.dll" Alias "DrawTextA" _
(ByVal hdc As Integer, ByVal lpString As String, ByVal nCount As Integer, _
lpRect As RECT, ByVal uFormat As Integer) As Integer
int DrawText(
HDC hDC,
LPCTSTR lpString,
int nCount,
LPRECT lpRect,
UINT uFormat
);
引数
hdc
デバイスコンテキストのハンドルlpString
出力の文字列nCount
同、バイト数(すべてのテキストを出力するとき-1)lpRect
出力範囲を指定するRECT構造体uFormat
出力する書式を指定する定数戻り値
正常終了のとき テキストの高さ備考
エラーのとき 0
DT_SINGLELINEを設定しない場合は、複数行とみなされる。uFormatの定数
DT_BOTTOM = &H8 矩形の底辺にテキストを合わせる。
DT_SINGLELINEと共に使う
DT_CALCRECT = &H400 テキストが納まる実際の矩形サイズを計算
概略の矩形サイズを与えて、この定数を指定する
DT_CENTER = &H1 テキストを水平方向にセンタリング
DT_EDITCONTROL = &H2000 テキストボックスと同じ書式化
DT_END_DLLIPISIS = &H8000& 矩形領域内に納まらないとき最後尾に...を付ける
DT_EXPANDTABS = &H40 [TAB]をスペースに変換(デフォルト8バイト)
DT_EXTERNALLEADING = &H200 行間の計算にフォントの外部リーディングを考慮する
DT_LEFT = &H0 左揃え
DT_MODIFYSTRING = &H10000 修正した文字をlpStringTextに返す
DT_NOCLIP = &H100 クリッピングしないでテキストを表示
DT_PATH_ELLIPSIS = &H4000 矩形領域内に納まらないとき中央部に...を付ける
DT_NOPREFIX = &H800 "&"に特別な意味を持たせない
DT_RIGHT = &H2 右揃え
DT_RTLREADING = &H20000 アラビア語などのとき、右から左に表示
DT_SINGLELINE = &H20 テキスト中の1行を指定
DT_TABSTOP = &H80 タブ位置を設定
タブと置き換えするスペースを変更する場合は
フラッグ上位バイトに設定する
例えば4バイトに設定する場合は
DT_TABSTOP or DT_EXPANDTABS or &H400
DT_TOP = &H0 上揃え(DT_SINGLELINEと共に使う)
DT_VCENTER &H4 テキストを垂直方向にセンタリング
(DT_SINGLELINEと共に使う)
DT_WORDBREAK = &H10 単語間のスペースを改行して使うように設定
DT_WORD_ELLIPSIS = &H40000