我使用CreateTextLayout
和CreateTextFormat
用DirectWrite(C++)绘制文本,文本是希伯来语/英语混合的,有没有办法对拉丁语和希伯来语字符使用不同的字体/字号?
谢谢。
使用CreateTextFormat
创建IDWriteTextFormat
时,可以在第一个参数中传递字体家族的名称,也可以在第六个参数中更改字体的大小。
您可以从MSDN获取CreateTextFormat
参数。
以下是Microsoft Windows字体系列的列表,您可以在其中找到拉丁语和希伯来语字体。
我最终调用了IDWriteFont::HasCharacter
来构建所有字符都使用相同字体(希伯来语或拉丁语)的文本范围。
如果该文本范围使用希伯来文字体,我会对其调用textLayout->SetFontSize
来增加字体大小。
这相当于预期了DirectWrite
将执行的字体回调,这是自动的,不能自定义。