IDWriteTextLayout インターフェイス (dwrite.h)
IDWriteTextLayout インターフェイスは、完全に分析および書式設定された後のテキスト ブロックを表します。
継承
IDWriteTextLayout インターフェイスは、IDWriteTextFormat から継承されます。 IDWriteTextLayout には、次の種類のメンバーもあります。
メソッド
IDWriteTextLayout インターフェイスには、これらのメソッドがあります。
IDWriteTextLayout::D etermineMinWidth 単語全体の文字間を緊急に区切ることなくレイアウトを設定できる最小幅を指定します。 |
IDWriteTextLayout::D raw 指定したクライアント描画コンテキストを使用してテキストを描画します。 |
IDWriteTextLayout::GetClusterMetrics 各グリフ クラスターの論理プロパティと測定値を取得します。 |
IDWriteTextLayout::GetDrawingEffect 指定したテキスト位置にあるアプリケーション定義の描画効果を取得します。 |
IDWriteTextLayout::GetFontCollection 指定した位置にあるテキストに関連付けられているフォント コレクションを取得します。 |
IDWriteTextLayout::GetFontFamilyName 指定した位置にあるテキストのフォント ファミリ名をコピーします。 |
IDWriteTextLayout::GetFontFamilyNameLength 現在の位置にあるフォント ファミリ名の長さを取得します。 |
IDWriteTextLayout::GetFontSize 指定した位置にあるテキストのフォント em の高さを取得します。 |
IDWriteTextLayout::GetFontStretch 指定した位置にあるテキストのフォント ストレッチを取得します。 |
IDWriteTextLayout::GetFontStyle 指定した位置にあるテキストのフォント スタイル (傾きとも呼ばれます) を取得します。 |
IDWriteTextLayout::GetFontWeight 指定した位置にあるテキストのフォントの太さを取得します。 |
IDWriteTextLayout::GetInlineObject 指定した位置にあるインライン オブジェクトを取得します。 |
IDWriteTextLayout::GetLineMetrics テキスト文字列の個々のテキスト行に関する情報を取得します。 |
IDWriteTextLayout::GetLocaleName 指定した位置にあるテキストのロケール名を取得します。 |
IDWriteTextLayout::GetLocaleNameLength 指定した位置にあるテキストのロケール名の長さを取得します。 |
IDWriteTextLayout::GetMaxHeight レイアウトの最大高さを取得します。 |
IDWriteTextLayout::GetMaxWidth レイアウトの最大幅を取得します。 |
IDWriteTextLayout::GetMetrics 書式設定された文字列の全体的なメトリックを取得します。 (IDWriteTextLayout.GetMetrics) |
IDWriteTextLayout::GetOverhangMetrics レイアウトのオーバーハング (DIP) と、レイアウトに含まれるすべてのオブジェクト (テキスト グリフやインライン オブジェクトを含む) を返します。 |
IDWriteTextLayout::GetStrikethrough 指定した位置にあるテキストの取り消し線の存在を取得します。 |
IDWriteTextLayout::GetTypography 指定した位置にあるテキストの文字体裁設定を取得します。 |
IDWriteTextLayout::GetUnderline 指定した位置にあるテキストの下線の存在を取得します。 |
IDWriteTextLayout::HitTestPoint アプリケーションは、レイアウト ボックスの左上の位置を基準にして特定のピクセル位置を渡してこの関数を呼び出し、ヒット テストが発生したテキスト文字列の対応するヒット テスト メトリックに関する情報を取得します。 |
IDWriteTextLayout::HitTestTextPosition アプリケーションは、この関数を呼び出して、テキストの位置と位置の論理側を指定して、レイアウト ボックスの左上を基準としたピクセル位置を取得します。 |
IDWriteTextLayout::HitTestTextRange アプリケーションは、この関数を呼び出して、テキスト位置の範囲に対応するヒット テスト メトリックのセットを取得します。 メインの使用法の 1 つは、テキスト文字列の強調表示の選択を実装することです。 |
IDWriteTextLayout::SetDrawingEffect アプリケーション定義の描画効果を設定します。 |
IDWriteTextLayout::SetFontCollection フォント コレクションを設定します。 |
IDWriteTextLayout::SetFontFamilyName 指定したテキスト範囲内のテキストの null で終わるフォント ファミリ名を設定します。 |
IDWriteTextLayout::SetFontSize 指定したテキスト範囲内のテキストのフォント サイズを DIP 単位で設定します。 |
IDWriteTextLayout::SetFontStretch 指定したテキスト範囲内のテキストのフォント ストレッチを設定します。 |
IDWriteTextLayout::SetFontStyle DWRITE_TEXT_RANGE構造体で指定されたテキスト範囲内のテキストのフォント スタイルを設定します。 |
IDWriteTextLayout::SetFontWeight DWRITE_TEXT_RANGE構造体で指定されたテキスト範囲内のテキストのフォントの太さを設定します。 |
IDWriteTextLayout::SetInlineObject インライン オブジェクトを設定します。 |
IDWriteTextLayout::SetLocaleName 指定したテキスト範囲内のテキストのロケール名を設定します。 |
IDWriteTextLayout::SetMaxHeight レイアウトの最大高さを設定します。 |
IDWriteTextLayout::SetMaxWidth レイアウトの最大幅を設定します。 |
IDWriteTextLayout::SetStrikethrough 指定したテキスト範囲内のテキストの取り消し線を設定します。 |
IDWriteTextLayout::SetTypography 指定したテキスト範囲内のテキストのフォント 文字体裁機能を設定します。 |
IDWriteTextLayout::SetUnderline 指定したテキスト範囲内のテキストの下線を設定します。 |
解説
IDWriteTextLayout インターフェイスへの参照を取得するには、次のコードに示すように、アプリケーションで IDWriteFactory::CreateTextLayout メソッドを呼び出す必要があります。
// Create a text layout using the text format.
if (SUCCEEDED(hr))
{
RECT rect;
GetClientRect(hwnd_, &rect);
float width = rect.right / dpiScaleX_;
float height = rect.bottom / dpiScaleY_;
hr = pDWriteFactory_->CreateTextLayout(
wszText_, // The string to be laid out and formatted.
cTextLength_, // The length of the string.
pTextFormat_, // The text format to apply to the string (contains font information, etc).
width, // The width of the layout box.
height, // The height of the layout box.
&pTextLayout_ // The IDWriteTextLayout interface pointer.
);
}
IDWriteTextLayout インターフェイスを使用すると、アプリケーションは、DWRITE_TEXT_RANGE構造体で指定された、表すテキストの範囲の書式を変更できます。 次の例は、テキスト範囲のフォントの太さを設定する方法を示しています。
// Set the font weight to bold for the first 5 letters.
DWRITE_TEXT_RANGE textRange = {0, 4};
if (SUCCEEDED(hr))
{
hr = pTextLayout_->SetFontWeight(DWRITE_FONT_WEIGHT_BOLD, textRange);
}
IDWriteTextLayout には、取り消し線、下線、インライン オブジェクトをテキストに追加するためのメソッドも用意されています。
IDWriteTextLayout オブジェクトで表されるテキストブロックを描画するために、Direct2D は ID2D1RenderTarget::D rawTextLayout メソッドを提供します。 カスタム レンダラーを使用して描画するには、 IDWriteTextRenderer インターフェイスを実装し、 IDWriteTextLayout::D raw メソッドを 呼び出します。
DirectWriteと Direct2D
IDWriteTextLayout オブジェクトで表される書式設定された文字列を描画するために、Direct2D は ID2D1RenderTarget::D rawTextLayout メソッドを提供します。その他のレンダリング オプション
カスタム レンダラーを使用してレンダリングするには、 IDWriteTextLayout::D raw メソッドを使用します。このメソッドは、次のコードに示すように、 IDWriteTextRenderer から派生したコールバック インターフェイスを引数として受け取ります。
// Draw the text layout using DirectWrite and the CustomTextRenderer class.
hr = pTextLayout_->Draw(
NULL,
pTextRenderer_, // Custom text renderer.
origin.x,
origin.y
);
IDWriteTextRenderer は 、グリフ実行、下線、取り消し線、インライン オブジェクトを描画するためのメソッドを宣言します。 これらのメソッドを実装するのは、アプリケーション次第です。 カスタム テキスト レンダラーを作成すると、カスタム塗りつぶしやアウトラインなどのテキストをレンダリングするときに、アプリケーションで追加の効果を適用できます。
カスタム テキスト レンダラーを使用すると、GDI などの別のテクノロジを使用してレンダリングすることもできます。
要件
サポートされている最小のクライアント | Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | dwrite.h |