パラメータ
hdc
デバイスコンテキストのハンドルを指定する。
lpchText
描画する文字列へのポインタを指定する。
cchText パラメータに -1 を指定する場合は、このパラメータに指定する文字列は NULL で終わっていなければならない。
dwDTFormat パラメータで DT_MODIFYSTRING を指定した場合、DrawTextEx
関数によって、この文字列に最大で 4 文字が追加さ
れる場合がある。文字列を格納するバッファには、この追加文字も格納できるだけのサイズの余裕を持たせておかなければならない。
cchText
文字列の文字数を指定する。このパラメータに -1 を指定すると、lpchText パラメータは NULL
で終わる文字列へのポインタであると見なさ
れる。この場合、文字列の長さは自動的に計算される。
Windows 95/98:描画する文字数が 8192 文字を超えることはできない。
lprc
長方形領域の論理座標が入った RECT 構造体へのポインタを指定する。
テキストは、この長方形領域内で整形される(dwDTFormat パラメータで DT_NOCLIP を指定した場合を除く)。
dwDTFormat
テキストを整形する方法を指定する。次の値を組み合わせて指定できる。
値
|
意味
|
DT_BOTTOM |
長方形領域の下端にテキストを揃えます。DT_SINGLELINE と同時に指定しなければならない。 |
DT_CALCRECT |
指定されたテキストを表示するために必要な長方形領域の幅と高さを調べる。複数行テキストの場合は、 |
|
lprc
パラメータで指定された長方形領域の幅を使い、長方形領域の下端をテキストの最終行の下側の境 |
|
界線にまで広げる。テキストを 1 行で表示する場合は、長方形領域の右端を行の最後の文字の右側の境 |
|
界線に合うように変更する。どちらの場合も、DrawTextEx 関数は、テキストの描画は行わず、整形され |
|
たテキストの高さを返す。 |
DT_CENTER |
テキストを長方形領域内で横方向に中央揃えで表示する。 |
DT_EDITCONTROL |
複数行エディットコントロールがもつ特性と同じ特性で描画する。 |
|
特に、平均文字幅がエディットコントロールと同じ方法で計算され、部分的に見えている最後の行は表示さ |
|
れない。 |
DT_END_ELLIPSIS |
文字列の最後の部分が長方形領域に納まり切らない場合、はみ出す部分が切り取られ、末尾に省略符 |
|
号(...)が追加される。 |
|
文字列の最後ではない場所にある単語が長方形領域からはみ出す場合は、省略記号なしで切り取られ |
|
る。DT_MODIFYSTRINGフラグがセットされていない限り、文字列が変更されることはない。 |
DT_EXPANDTABS |
タブ文字を展開する。既定のタブ間隔は 8 文字である。 |
DT_EXTERNALLEADING |
行の高さに、外部レディングの高さ(テキストの行間として適切な高さ)を加算する。 |
|
通常、外部レディングはテキスト行の高さに加えられない。 |
DT_HIDEPREFIX |
Windows
2000:テキストに埋め込まれているプレフィックスとしてのアンパサンド(&)を無視する。 |
|
後ろに続く文字に下線が施されなくなる。ただし、その他のニーモニックプレフィックス文字は、通常どおり |
|
処理される。次に例を示す。 |
|
入力文字列 |
"A&bc&&d" |
|
通常 |
"Abc&d" |
|
HIDEPREFIX |
"Abc&d" |
|
DT_NOPREFIX
および DT_PREFIXONLY も参照のこと。 |
DT_INTERNAL |
テキストの表示サイズを計算する際にシステムフォントを使用する。 |
DT_LEFT |
テキストを左揃えにする。
|
DT_MODIFYSTRING |
lpchText
パラメータが指すバッファに、実際に表示された文字列を格納する。 |
|
DT_END_ELLIPSIS フラグまたは DT_PATH_ELLIPSIS フラグを指定したときにしか意味を持たない。 |
DT_NOCLIP |
クリッピングをしない。描画が多少速くなる。 |
DT_NOFULLWIDTHCHARBREAK |
Windows 98、Windows
2000:行が DBCS(ダブルバイト文字セットの文字列)で改行される |
|
のを防ぐ。このため、改行規則は SBCS 文字列と同じになる。 |
|
たとえば、韓国語版 Windows で使用すると、アイコンラベルの表示の信頼性が上がる。 |
|
DT_WORDBREAK フラグを指定していなければ、この値は意味を持たない。 |
DT_NOPREFIX |
プリフィックス文字の処理を行わないようにする。通常は、ニーモニックプレフィクス文字の「&」は、その |
|
次にくる文字に下線(_)を付けて表示せよとの命令であると解釈され、ニーモニックプレフィックス文字の |
|
「&&」は、1 つの「&」を表示せよとの命令であると解釈される。DT_NOPREFIX を指定すると、この |
|
処理が行われなくなる。DT_HIDEPREFIX および DT_PREFIXONLY も参照のこと。 |
DT_PATH_ELLIPSIS |
指定した長方形領域に収まるように、必要に応じてテキストの途中を省略符号 (...) に置き換える。 |
|
円記号(\)が含まれているテキストの場合、最後の円記号の後ろのテキストが可能な限り保持される。 |
|
DT_MODIFYSTRING フラグを指定していない限り、文字列が変更されることはない。 |
|
DT_END_ELLIPSIS および DT_WORD_ELLIPSIS も参照のこと。 |
DT_PATH_ELLIPSIS |
指定した長方形領域に収まるように、必要に応じてテキストの途中を省略符号 (...) に置き換える。 |
|
円記号(\)が含まれているテキストの場合、最後の円記号の後ろのテキストが可能な限り保持される。 |
|
DT_MODIFYSTRING フラグを指定していない限り、文字列が変更されることはない。 |
|
DT_END_ELLIPSIS および DT_WORD_ELLIPSIS も参照のこと。 |
DT_PREFIXONLY |
Windows 2000:アンパサンドプレフィックス文字(&)の後ろの文字がくる位置の下線だけを描画する。 |
|
文字列内のその他の文字は一切描画しない。次に例を示す。 |
|
入力文字列 |
"A&bc&&d" |
|
通常 |
"Abc&d" |
|
PREFIXONLY
|
" " |
|
DT_NOPREFIX および
DT_HIDEPREFIX も参照のこと。 |
DT_RIGHT |
テキストを右揃えにする。
|
DT_RTLREADING |
hdc
パラメータで指定したデバイスコンテキストで選択されているフォントがヘブライ語かアラビア語だった場合 |
|
に、双方向テキストを右から左への読み取り順序で表示する。既定の読み取り順序は、どのテキストでも |
|
左から右である。 |
DT_SINGLELINE |
テキストを単一行で表示する。たとえ、テキストがキャリッジリターンやラインフィードを含んでいても、改行さ |
|
れない。 |
DT_TABSTOP |
タブ間隔を設定する。タブ間隔の平均文字数は、lpDTParams パラメータで渡す DRAWTEXTPARAMS |
|
構造体で指定する。 |
DT_TOP |
長方形領域の上端にテキストを揃える。 |
DT_VCENTER |
テキストを縦方向に中央揃えで表示する。この値は、DT_SINGLELINE を指定した場合にしか使用でき |
|
ない。 |
DT_WORDBREAK |
テキストを複数行で表示する。折り返しは、lpRect パラメータで指定した長方形領域の端から単語がはみ |
|
出す部分で自動的に行われる。キャリッジリターンとラインフィードの組み合わせによっても折り返される。 |
DT_WORD_ELLIPSIS |
長方形領域内に納まらない部分がある場合、それを切り取ったうえで、必ず省略記号(...)を追加する。 |
|
DT_END_ELLIPSIS および
DT_PATH_ELLIPSIS も参照のこと。 |
lpDTParams
追加のテキスト整形情報が入った、DRAWTEXTPARAMS 構造体へのポインタを指定する。必要なければ、NULL
を指定する。
戻り値
関数が成功すると、テキストの高さが返る。
DT_VCENTER または DT_BOTTOM を指定した場合は、lprc->top から描画したテキストの下端までのオフセットが返る。
関数が失敗すると、0 が返る。
Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。
解説
DrawTextEx 関数では、文字送り方向の角度も文字の向きの角度も 0
に設定されているフォントしかサポートされていない。 |