0

太字のフォントを選択するためのコードを記述しようとしています(実際には、クロスプラットフォームのフォントレンダラーに送信するフォントファイル名を取得したいのですが、あまり関係ありません)。CreateFont()を使用して、cWeightをFW_BOLDに設定し、pszFaceNameを「Arial」に設定します。このフォントをDCに選択し、GetTextFace()を使用して、実際に選択されたフォントを確認します。結果はArialです。フォントがArialBoldではなく、別のフォントファイルを持つ別の面であることに驚きました。Arial Boldフォントを指定する唯一の方法は、pszFaceNameを「ArialBold」に設定することでした。残念ながら、フォント名の末尾に太字を追加するだけでは、一部のフォントでのみ機能します。これは、一部のフォントには個別の太字フォントがないためです。

フォントの実際の太字バージョンが確実に返されるように太字を指定する一般的な方法はありますか?

ありがとう

フィル

4

1 に答える 1

2

Windows フォント マッパーはフェイス名を置き換えません。「Arial Bold」は標準フォントではなく、標準の「Arial」フォントとは関係ありません。使用したい場合は、リクエストする必要があります。

FW_BOLD で「Arial」を要求すると、c:\windows\fonts\arialbd.ttf フォント ファイルが選択されます。太字の arial をレンダリングするために特別に設計されたフォント ファイル。「アリエル」という顔の名前を持つ。同様に、ariali.ttf は斜体バージョンを提供し、arialbi.ttf は太字斜体バージョンを提供し、arial.ttf は通常のものです。

于 2012-07-10T00:34:33.707 に答える