2017-11-13 29 views
0

私はCreateFontFromLOGFONT()を使用してIDWriteFontに変換LOGFONT構造があります。LOGFONT構造体に基づいて、特定のストレッチでDirectWriteフォントを作成するにはどうすればよいですか?

IDWriteFont* dWriteFont = nullptr; 
if (FAILED(dWriteGdiInterop->CreateFontFromLOGFONT(&logFont, &dWriteFont))) return; 

をLOGFONTがTwのセンMT コンデンスフォントを記述した場合、私はのDirectWriteのフォントを持っていると思いDWRITE_FONT_STRETCH_CONDENSED属性を持っています割り当てられた。

LOGFONTには、選択したストレッチ(縮尺、幅など)に関係なく、幅「0」があります。ストレッチはフォント名からしか差し引かれていないようで、DirectWriteの方法ではフォント名から差し引かれません。これはバグですか?

LOGFONT構造体に基づいて特定のストレッチでDirectWriteフォントを作成するにはどうすればよいですか?

答えて

0

これは必ずしもバグだとは限りません。例えば、dwrite_3.hは、このメソッドに対して、lfFaceName、lfCharSet、lfWeight、lfItalicのいくつかのフィールドのみが考慮されているというコメントを持っています。ここにはlfWidthはありません。

あなたはまだ家族を通過する凝縮1を求めることを試みることができます:CreateFontFromLOGFONT()から返されたフォントの

  • コールGetFontFamily()を。
  • GetFirstMatchingFont()このファミリでは、必要なパラメータを使用します。

TwCen MTファミリがDirectWriteの観点から実際に凝縮されたバリアントである場合は、これがうまくいくはずです。

関連する問題