LOGFONTA 構造体 (dimm.h)

フォントの属性を定義します。

構文

typedef struct __MIDL___MIDL_itf_dimm_0000_0000_0003 {
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  CHAR lfFaceName[32];
} LOGFONTA;

メンバー

lfHeight

型: LONG

フォントの文字セルまたは文字の高さを論理単位で指定します。 文字の高さの値 (em height とも呼ばれます) は、文字セルの高さの値から内部の先頭の値を引いた値です。 フォント マッパーは、 lfHeight で指定された値を次のように解釈します。

説明
> 0 フォント マッパーは、この値をデバイス単位に変換し、使用可能なフォントのセルの高さと一致します。
0 フォント マッパーは、一致を検索するときに既定の高さの値を使用します。
< 0 フォント マッパーは、この値をデバイス単位に変換し、その絶対値を使用可能なフォントの文字の高さに一致します。
 

すべての高さの比較では、フォント マッパーは、要求されたサイズを超えない最大のフォントを検索します。

このマッピングは、フォントが初めて使用されるときに発生します。

MM_TEXT マッピング モードでは、次の数式を使用して、特定のポイント サイズのフォントの高さを指定できます。

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

MulDiv は次のように定義されます。

#define MulDiv(a,b,c)    (((a)*(b))/(c))

lfWidth

型: LONG

フォント内の文字の平均幅を論理単位で指定します。 lfWidth が 0 でない場合、デバイスの縦横比は、使用可能なフォントのデジタル化縦横比と照合され、最も近い一致を見つけ、差の絶対値によって決定されます。

lfEscapement

型: LONG

デバイスの文字送りベクターと x 軸との角度を 10 分の 1 度単位で指定します。 エスケープメント ベクターは、テキスト行の基本行と平行です。

lfEscapement メンバーは、エスケープメントと方向の両方を指定します。 lfEscapementlfOrientation を同じ値に設定する必要があります。

lfOrientation

型: LONG

デバイスの各文字のベース ラインと x 軸との角度を 10 分の 1 度単位で指定します。

lfWeight

型: LONG

0 ~ 1000 の範囲のフォントの太さを指定します。 たとえば、400 は標準で、700 は太字です。 この値が 0 の場合は、既定の重みが使用されます。

次の値は、便宜上 Wingdi.h で定義されています。

Weight
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900

lfItalic

型: BYTE

体のフォントを指定する場合は TRUE。

lfUnderline

型: BYTE

線付きフォントを指定する場合は TRUE。

lfStrikeOut

型: BYTE

り消し線のフォントを指定する場合は TRUE。

lfCharSet

型: BYTE

文字セットを指定します。 次の値が定義済みです。

ANSI_CHARSET BALTIC_CHARSET
CHINESEBIG5_CHARSET DEFAULT_CHARSET
EASTEUROPE_CHARSET GB2312_CHARSET
GREEK_CHARSET HANGUL_CHARSET
MAC_CHARSET OEM_CHARSET
RUSSIAN_CHARSET SHIFTJIS_CHARSET
SYMBOL_CHARSET TURKISH_CHARSET
 
韓国語のウィンドウ
JOHAB_CHARSET
 
Middle-Eastern Windows
HEBREW_CHARSET
ARABIC_CHARSET
 
タイ語ウィンドウ
THAI_CHARSET
 

OEM_CHARSET値は、オペレーティング システムに依存する文字セットを指定します。

DEFAULT_CHARSETは、現在のシステム ロケールに基づいて値に設定されます。 たとえば、システム ロケールが英語 (米国) の場合、値はANSI_CHARSET。

他の文字セットを含むフォントは、オペレーティング システムに存在する可能性があります。 アプリケーションで不明な文字セットを持つフォントを使用する場合、そのフォントでレンダリングされる文字列の翻訳や解釈を試みてはなりません。

このメンバーは、フォント マッピング プロセスで重要です。 一貫性のある結果を得るには、特定の文字セットを指定します。 lfFaceName メンバーに書体名を指定する場合は、lfCharSet 値が lfFaceName で指定された書体の文字セットと一致していることを確認します。

lfOutPrecision

型: BYTE

出力精度を指定します。 出力精度は、要求されたフォントの高さ、幅、文字の向き、エスケープメント、ピッチ、フォントの種類と出力がどれだけ近いかを定義します。 Wingdi.h で定義されている次のいずれかの値を指定できます。

説明
OUT_DEFAULT_PRECIS 既定のフォント マッパー動作を指定します。
OUT_RASTER_PRECIS システムに同じ名前の複数のフォントが含まれている場合に、フォント マッパーにラスター フォントを選択するように指示します。
OUT_STRING_PRECIS この値はフォント マッパーでは使用されませんが、ラスター フォントを列挙すると返されます。

lfClipPrecision

型: BYTE

クリッピング精度を指定します。 クリッピング精度は、クリッピング領域の一部外にある文字をクリップする方法を定義します。 Wingdi.h で定義されている次の値のうち 1 つ以上を指定できます。

説明
CLIP_DEFAULT_PRECIS 既定のクリッピング動作を指定します。
CLIP_CHARACTER_PRECIS 使用されていません。
CLIP_STROKE_PRECIS フォント マッパーでは使用されませんが、ラスター、ベクター、または TrueType フォントが列挙されると返されます。

lfQuality

型: BYTE

出力品質を指定します。 出力品質では、GDI が論理フォント属性を実際の物理フォントの属性と照合する必要がある方法を慎重に定義します。 Wingdi.h で定義されている次のいずれかの値を指定できます。

説明
ANTIALIASED_QUALITY フォントのアンチエイリアシングを有効にします。 この設定を機能させるには、ディスプレイ ドライバーがアンチエイリアステキストをサポートする必要があります。
NONANTIALIASED_QUALITY HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing レジストリ サブキーが存在する場合、強制的にドラフト品質を使用します。
CLEARTYPE_COMPAT_QUALITY 互換性のある幅を使用してフォントの ClearType テキストを有効にします。 互換性のある幅では、ClearType 以外のテキストと同じ間隔のテキストが生成されます。
CLEARTYPE_QUALITY フォントの ClearType テキストを有効にします。 ディスプレイ ドライバーは、この設定を機能させるために ClearType テキストをサポートする必要があります。
DEFAULT_QUALITY フォントの外観は関係ありません。
DRAFT_QUALITY GDI ラスター フォントの場合、スケーリングが有効になります。つまり、使用可能なフォント サイズが増えますが、品質が低くなる可能性があります。 太字、斜体、下線、取り消し線のフォントは、必要に応じて合成されます。

lfPitchAndFamily

型: BYTE

フォントのピッチとグループを指定します。 2 つの下位ビットはフォントのピッチを指定し、Wingdi.h で定義されている次のいずれかの値を指定できます。

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
メンバーのビット 4 から 7 はフォント グループを指定し、Wingdi.h で定義されている次のいずれかの値を指定できます。
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
ブール OR 演算子を使用して、1 つのピッチ定数と 1 つのファミリ定数を結合することで、適切な値を取得できます。

フォント ファミリは、フォントの外観を一般的な方法で記述します。 これらは、目的の正確な書体が使用できない場合にフォントを指定することを目的としています。 フォント ファミリの値は次のとおりです。

説明
FF_DECORATIVE ノベルティ フォント (例: 古英語)。
FF_DONTCARE 気にしない、知らない。
FF_MODERN 一定のストローク幅 (モノスペース)、セリフの有無にかかわらずフォント。 モノスペース フォントは、通常、Pica、Elite、Courier New など、モダンです。
FF_ROMAN 可変ストローク幅 (プロポーショナル) とセリフを使用したフォント (Serif など)。
FF_SCRIPT 手書きのように設計されたフォント (スクリプトや筆記体など)。
FF_SWISS ストローク幅 (比例) が可変で、セリフがないフォント (Sans Serif など)。

lfFaceName[32]

型: TCHAR[LF_FACESIZE]

フォントの書体名を指定する null で終わる文字列を指定します。 この文字列の長さは、終端の null 文字を含め、32 文字を超えることはできません。 EnumFontFamilies 関数を使用すると、現在使用可能なすべてのフォントの書体名を列挙できます。 lfFaceName が空の文字列の場合、GDI は他の指定された属性と一致する最初のフォントを使用します。

注釈

次の状況では、ClearType アンチエイリアシングはサポートされていません。

  • テキストはプリンターにレンダリングされます。
  • 256 色以下の表示セット。
  • テキストはターミナル サーバー クライアントにレンダリングされます。
  • フォントが TrueType フォントでも、TrueType アウトラインを持つ Microsoft OpenType フォントでもあります。 たとえば、ClearType アンチエイリアシングはサポートされていません。タイプ 1 フォント、TrueType アウトラインのない Postscript OpenType フォント、ビットマップ フォント、ベクター フォント、およびデバイス フォント。
  • フォントには、埋め込みビットマップを含むフォント サイズに合わせて、埋め込みビットマップが調整されています。 たとえば、これは一般的に東アジアのフォントで発生します。
この構造体は、最初に Windows Vista の Shtypes.idl と Shtypes.h に表示され、 IVisualProperties インターフェイスのメンバーと簡単に使用できます。 ただし、同じ構造は、以前のバージョンの Windows では Wingdi.h と Windows.h で定義されています。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header dimm.h (Shtypes.h、Dimm.h を含む)

こちらもご覧ください

IVisualProperties::GetFont

IVisualProperties::SetFont