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 オブジェクトで表されるテキストブロックを描画するために、Direct2DID2D1RenderTarget::D rawTextLayout メソッドを提供します。 カスタム レンダラーを使用して描画するには、 IDWriteTextRenderer インターフェイスを実装し、 IDWriteTextLayout::D raw メソッドを 呼び出します。

DirectWriteと Direct2D

IDWriteTextLayout オブジェクトで表される書式設定された文字列を描画するために、Direct2DID2D1RenderTarget::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

関連項目

IDWriteTextFormat