我有一个LOGFONT结构,我使用CreateFontFromLOGFONT()转换为IDWriteFont:
IDWriteFont* dWriteFont = nullptr;
if (FAILED(dWriteGdiInterop->CreateFontFromLOGFONT(&logFont, &dWriteFont))) return;
如果LOGFONT描述了Tw Cen MT Condensed 字体,我想让DirectWrite的字体分配DWRITE_FONT_STRETCH_CONDENSED属性。
LOGFONT的宽度为' 0',无论我选择什么样的伸展(压缩,宽,等等)。似乎拉伸只能从字体名称中扣除,而DirectWrite的方法无法这样做。这是一个错误吗?
如何基于LOGFONT结构创建具有特定拉伸的DirectWrite字体?
答案 0 :(得分:0)
我认为它不一定是个错误,例如dwrite_3.h对此方法有评论说只考虑了一些字段:lfFaceName,lfCharSet,lfWeight,lfItalic。这里没有lfWidth。
你仍然可以尝试通过家庭要求缩写:
GetFontFamily()
; CreateFontFromLOGFONT()
GetFirstMatchingFont()
。从DirectWrite的角度来看,如果Tw Cen MT系列实际上已经缩减了变体,那么这应该可行。