IDWriteTextLayout 介面 (dwrite.h)
IDWriteTextLayout介面代表完全分析並格式化後的文字區塊。
繼承
IDWriteTextLayout介面繼承自IDWriteTextFormat。 IDWriteTextLayout 也有下列類型的成員:
方法
IDWriteTextLayout介面具有這些方法。
備註
若要取得 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 |