共用方式為


IDWriteTextLayout 介面 (dwrite.h)

IDWriteTextLayout介面代表完全分析並格式化後的文字區塊。

繼承

IDWriteTextLayout介面繼承自IDWriteTextFormatIDWriteTextLayout 也有下列類型的成員:

方法

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

應用程式會呼叫此函式,以取得一組對應至一系列文字位置的點擊測試計量。 其中一個主要用法是實作文字字串的醒目提示選取。
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 Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 dwrite.h

另請參閱

IDWriteTextFormat