DrawTextExW 関数 (winuser.h)
DrawTextEx 関数は、指定した四角形に書式設定されたテキストを描画します。
構文
int DrawTextExW(
[in] HDC hdc,
[in, out] LPWSTR lpchText,
[in] int cchText,
[in, out] LPRECT lprc,
[in] UINT format,
[in] LPDRAWTEXTPARAMS lpdtp
);
パラメーター
[in] hdc
描画するデバイス コンテキストへのハンドル。
[in, out] lpchText
描画するテキストを含む文字列へのポインター。 cchText パラメーターが -1 の場合、文字列は null で終わる必要があります。
dwDTFormat にDT_MODIFYSTRINGが含まれている場合、関数はこの文字列に最大 4 文字を追加できます。 文字列を含むバッファーは、これらの余分な文字に対応するのに十分な大きさにする必要があります。
[in] cchText
lpchTextによって指される文字列の長さ。 cchText が -1 の場合、lpchText パラメーターは null で終わる文字列へのポインターであると見なされ、DrawTextEx は文字数を自動的に計算します。
[in, out] lprc
テキストを書式設定する四角形を論理座標で含む RECT 構造体へのポインター。
[in] format
書式設定オプション。 このパラメーターには、次の 1 つ以上の値を指定できます。
値 | 意味 |
---|---|
|
テキストを四角形の下部に揃えて配置します。 この値は、DT_SINGLELINE値でのみ使用されます。 |
|
四角形の幅と高さを指定します。 複数行のテキストがある場合、 DrawTextEx は lprc パラメーターによって指される四角形の幅を使用し、四角形の底を拡張してテキストの最後の行を連結します。 テキストの行が 1 行しかない場合、 DrawTextEx は四角形の右側を変更して、行の最後の文字をバインドします。 どちらの場合も、 DrawTextEx は書式設定されたテキストの高さを返しますが、テキストは描画しません。 |
|
四角形内のテキストを水平方向に中央揃えにします。 |
|
複数行の編集コントロールのテキスト表示特性を複製します。 具体的には、平均文字幅は編集コントロールの場合と同じ方法で計算され、関数は部分的に表示される最後の行を表示しません。 |
|
表示されるテキストの場合は、文字列の末尾を省略記号に置き換え、結果が指定した四角形に収まるようにします。 四角形の制限を超える単語 (文字列の末尾ではない) は、省略記号なしで切り捨てられます。 DT_MODIFYSTRING フラグが指定されていない限り、文字列は変更されません。
DT_PATH_ELLIPSISとDT_WORD_ELLIPSISを比較します。 |
|
タブ文字を拡張します。 タブごとの既定の文字数は 8 文字です。 |
|
行の高さにフォントの外部レディングを含めます。 通常、外部の先頭はテキスト行の高さに含まれません。 |
|
テキスト内のアンパサンド (&) プレフィックス文字を無視します。 後に続く文字には下線は付けられませんが、他のニーモニックプレフィックス文字は引き続き処理されます。
例: input string: "A&bc&&d" normal: "Abc&d" DT_HIDEPREFIX: "Abc&d" DT_NOPREFIXとDT_PREFIXONLYを比較します。 |
|
システム フォントを使用して、テキスト メトリックを計算します。 |
|
テキストを左揃えにします。 |
|
指定した文字列を、表示されるテキストと一致するように変更します。 DT_END_ELLIPSISまたはDT_PATH_ELLIPSISが指定されていない限り、この値は無効です。 |
|
クリッピングなしで描画します。 drawTextEx は、DT_NOCLIPを使用するとやや高速になります。 |
|
DBCS (ダブルワイド文字ストリング) での改行を防止し、改行規則が SBCS ストリングと同等になるようにします。 たとえば、これは、アイコン ラベルの読みやすさを高める目的で、韓国語のウィンドウで使用できます。 DT_WORDBREAKを指定しない限り、この値は無効です。 |
|
先頭文字の処理を無効にします。 通常、 DrawTextEx はアンパサンド (&) ニーモニック プレフィックス文字を、次の文字をアンダースコア付けするディレクティブとして解釈し、二重アンパサンド (&&) ニーモニック プレフィックス文字を 1 つのアンパサンドを出力するディレクティブとして解釈します。 DT_NOPREFIXを指定すると、この処理はオフになります。 DT_HIDEPREFIXとDT_PREFIXONLYとの比較 |
|
表示されるテキストの場合は、文字列の中央にある文字を省略記号に置き換え、結果が指定した四角形に収まるようにします。 文字列に円記号 (\\) 文字が含まれている場合、DT_PATH_ELLIPSISは最後の円記号の後のテキストを可能な限り保持します。 DT_MODIFYSTRING フラグが指定されていない限り、文字列は変更されません。
DT_END_ELLIPSISとDT_WORD_ELLIPSISを比較します。 |
|
アンパサンド (&) プレフィックス文字の後の文字の位置に下線のみを描画します。 文字列内に文字を描画しません。
例: input string: "A&bc&&d" normal: "Abc&d" PREFIXONLY: " _ " DT_NOPREFIXとDT_HIDEPREFIXと比較します。 |
|
テキストを右揃えにします。 |
|
hdc で選択したフォントがヘブライ語またはアラビア語のフォントである場合に、双方向テキストの右から左への読み取り順序でレイアウトします。 すべてのテキストの既定の読み取り順序は左から右です。 |
|
1 行のみにテキストを表示します。 復帰と改行は改行されません。 |
|
タブ位置を設定します。 lpDTParams パラメーターが指す DRAWTEXTPARAMS 構造体は、タブ位置あたりの平均文字幅の数を指定します。 |
|
テキストを四角形の上部に配置します。 |
|
テキストを垂直方向に中央揃えにします。 この値は、DT_SINGLELINE値でのみ使用されます。 |
|
単語を区切ります。 単語が lprc パラメーターで指定された四角形の端を越えると、単語間の線が自動的に分割されます。 復帰改行シーケンスも改行します。 |
|
四角形に収まらない単語を切り捨て、省略記号を追加します。
DT_END_ELLIPSISとDT_PATH_ELLIPSISと比較します。 |
[in] lpdtp
追加の書式設定オプションを指定する DRAWTEXTPARAMS 構造体へのポインター。 このパラメーターは、NULL でもかまいません。
戻り値
関数が成功した場合、戻り値は論理単位のテキストの高さになります。 DT_VCENTERまたはDT_BOTTOMを指定した場合、戻り値は描画されたテキストの下端からの lprc->top
オフセットになります。
関数が失敗した場合は、0 を返します。
注釈
DrawTextEx 関数は、エスケープメントと方向の両方が 0 のフォントのみをサポートします。
デバイス コンテキストのテキスト配置モードには、TA_LEFT、TA_TOP、およびTA_NOUPDATECPフラグが含まれている必要があります。
注意
winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DrawTextEx を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-misc-l1-2-0 (Windows 8.1で導入) |