次の方法で共有


ExtTextOutA 関数 (wingdi.h)

ExtTextOut 関数は、現在選択されているフォント、背景色、およびテキストの色を使用してテキストを描画します。 必要に応じて、クリッピング、opaquing、またはその両方に使用するディメンションを指定できます。

構文

BOOL ExtTextOutA(
  [in] HDC        hdc,
  [in] int        x,
  [in] int        y,
  [in] UINT       options,
  [in] const RECT *lprect,
  [in] LPCSTR     lpString,
  [in] UINT       c,
  [in] const INT  *lpDx
);

パラメーター

[in] hdc

デバイス コンテキストへのハンドル。

[in] x

文字列の配置に使用される参照ポイントの x 座標 (論理座標)。

[in] y

文字列の配置に使用される参照ポイントの y 座標 (論理座標)。

[in] options

アプリケーション定義の四角形の使用方法を指定します。 このパラメーターには、次の値のうち 1 つ以上を指定できます。

価値 意味
ETO_CLIPPED
テキストは四角形にクリップされます。
ETO_GLYPH_INDEX
lpString 配列は、GetCharacterPlacement から返される配列 参照し、言語固有の処理は必要ありませんので、GDI によって直接解析する必要があります。 グリフのインデックス作成は TrueType フォントにのみ適用されますが、フラグはビットマップおよびベクター フォントに使用して、それ以上言語処理が不要であり、GDI が文字列を直接処理する必要があることを示すことができます。 文字列がラスター フォントの 8 ビット値の配列であると見なされる場合でも、すべてのグリフ インデックスは 16 ビット値であることに注意してください。

ExtTextOutW の場合、グリフ インデックスはメタファイルに保存されます。 ただし、正しい文字を表示するには、同じフォントを使用してメタファイルを再生する必要があります。 ExtTextOutA の場合、グリフ インデックスは保存されません。

ETO_IGNORELANGUAGE
システム用に予約されています。 アプリケーションでこのフラグを設定すると、国際スクリプトのサポートが失われ、場合によってはテキストがまったく表示されないことがあります。
ETO_NUMERICSLATIN
数値を表示するには、ヨーロッパの数字を使用します。
ETO_NUMERICSLOCAL
数値を表示するには、ロケールに適した数字を使用します。
ETO_OPAQUE
現在の背景色を使用して四角形を塗りつぶす必要があります。
ETO_PDY
これを設定すると、lpDx 指す配列に値のペアが含まれます。 各ペアの最初の値は、通常どおり、隣接する文字セルの原点間の距離ですが、2 番目の値はフォントの垂直方向に沿った変位です。
ETO_RTLREADING
中東言語エディションの Windows: この値が指定され、ヘブライ語またはアラビア語のフォントがデバイス コンテキストで選択されている場合、文字列は右から左への読み取り順序を使用して出力されます。 この値が指定されていない場合、文字列は左から右の順序で出力されます。 SetTextAlignでTA_RTLREADING値 設定すると、同じ効果が得られます。 この値は、下位互換性のために保持されます。
 

ETO_GLYPH_INDEXとETO_RTLREADINGの値を一緒に使用することはできません。 ETO_GLYPH_INDEXは、すべての言語処理が完了したことを意味するため、ETO_RTLREADING フラグも指定されている場合、この関数は無視します。

[in] lprect

クリッピング、opaquing、またはその両方に使用される四角形の次元を論理座標で指定するオプションの RECT 構造体へのポインター。

[in] lpString

描画するテキストを指定する文字列へのポインター。 cbCount は文字列の長さを指定するため、文字列 0 で終わる必要はありません。

[in] c

lpStringによって指 文字列の の長さ。

この値は 8192 を超えない場合があります。

[in] lpDx

隣接する文字セルの原点間の距離を示す値の省略可能な配列へのポインター。 たとえば、lpDx[i] 論理単位は、i 文字セルの原点と、i + 1 文字セルを分離します。

戻り値

文字列が描画される場合、戻り値は 0 以外です。 ただし、ExtTextOut の ANSI バージョンが ETO_GLYPH_INDEX で呼び出された場合、関数は何も行わない場合でも、TRUE を返します。

関数が失敗した場合、戻り値は 0 です。

備考

指定したデバイス コンテキストの現在のテキスト配置設定によって、参照ポイントを使用してテキストを配置する方法が決まります。 テキスト配置設定は、GetTextAlign 関数を呼び出すことによって取得されます。 テキスト配置の設定は、SetTextAlign 関数を呼び出すことによって変更されます。 テキストの配置には、次の値を使用できます。 水平方向と垂直方向の配置に影響を与えるフラグから選択できるのは 1 つだけです。 さらに、現在の位置を変更する 2 つのフラグのうちの 1 つだけを選択できます。

用語 形容
TA_BASELINE 参照ポイントは、テキストの基準行に配置されます。
TA_BOTTOM 参照ポイントは、外接する四角形の下端にあります。
TA_TOP 参照ポイントは、外接する四角形の上端にあります。
TA_CENTER 基準点は、外接する四角形の中心に水平方向に配置されます。
TA_LEFT 参照ポイントは、外接する四角形の左端にあります。
TA_RIGHT 参照ポイントは、外接する四角形の右端にあります。
TA_NOUPDATECP 現在の位置は、各テキスト出力呼び出しの後に更新されません。 参照ポイントがテキスト出力関数に渡されます。
TA_RTLREADING 中東言語エディションの Windows: テキストは、既定の左から右の順序ではなく、右から左の読み取り順にレイアウトされます。 これは、デバイス コンテキストで選択されているフォントがヘブライ語またはアラビア語である場合にのみ適用されます。
TA_UPDATECP 現在の位置は、各テキスト出力呼び出しの後に更新されます。 現在の位置が参照ポイントとして使用されます。
 

lpDx パラメーターが NULL場合、ExtTextOut 関数は文字間の既定の間隔を使用します。 文字セルの原点と、lpDx パラメーターが指す配列の内容は、論理単位で指定されます。 文字セルの原点は、文字セルの左上隅として定義されます。

既定では、現在位置はこの関数によって使用または更新されません。 ただし、アプリケーションは、fMode パラメーターをTA_UPDATECPに設定して SetTextAlign 関数を呼び出して、指定されたデバイス コンテキストに対して ExtTextOut 呼び出すたびに、システムが現在位置を使用および更新できるようにします。 このフラグが設定されている場合、システムは後続の ExtTextOut 呼び出しで、X および Y パラメーターを無視します。

ExtTextOutの ANSI バージョンの場合、lpDx 配列の INT 値の数は、lpStringのバイト数 同じです。 DBCS 文字の場合、2 バイトの合計が目的の dx に加算される限り、lpDx 内の dx を先行バイトと証跡バイトの間に エントリに割り当てることができます。 Unicode バージョンの ExtTextOutの DBCS 文字の場合、各 Unicode グリフは 1 つの pdx エントリを取得します。

GetTextExtentExPointalpDx 値は、extTextOutの lpDx 値と同じではありません。 lpDxで alpDx使用するには、最初にそれらを処理する必要があります。

ExtTextOut 、必要に応じて uniscribe 使用され、フォントフォールバックが行われます。 ETO_IGNORELANGUAGE フラグは、この動作を抑制し、渡すべきではありません。

さらに、extTextOut はカーネル モードに移行する前に呼び出しの内部バッチ処理を実行し、PolyTextOut と ExtTextOutの使用量を比較する場合のパフォーマンス上の問題の一部を軽減します。

先端

ExtTextOut は、さまざまな言語の表示を処理できるため、最新の開発のために PolyTextOut よりも強くお勧めします。

例については、「メニューの使用」の「Menu-Item テキスト文字列のフォントの設定」参照してください。

手記

wingdi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ExtTextOut を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wingdi.h (Windows.h を含む)
ライブラリ Gdi32.lib
DLL Gdi32.dll

関連項目

フォント関数とテキスト関数

フォントとテキストの概要

GetTextAlign の

RECT の

SelectObject を する

SetBkColor

SetTextAlign の

SetTextColor の