使用文字フォントの大きさ・幅・高さ・太さなどをもつ構造体です:
- LPTEXTMETRIC=TEXTMETRIC FAR * (Win16);TEXTMETRIC
* (Win32)
- TEXTMETRIC tm; ⇒ LPTEXTMETRIC lptm = &tm;
|
typedef struct tagTEXTMETRIC{ |
|
|
|
LONG tmHeight; |
|
|
|
LONG tmAscent; |
|
|
|
LONG tmDescent; |
|
|
|
LONG tmInternalLeading; |
|
|
|
LONG tmExternalLeading; |
|
|
|
LONG tmAveCharWidth; |
|
|
|
LONG tmMaxCharWidth; |
|
|
|
LONG tmWeight; |
|
|
|
LONG tmOverhang; |
|
|
|
LONG tmDigitizedAspectX;
|
|
|
|
LONG tmDigitizedAspectY;
|
|
|
|
BCHAR tmFirstChar; |
|
|
|
BCHAR tmLastChar; |
|
|
|
BCHAR tmdefaultChar; |
|
|
|
BCHAR tmBreakChar; |
|
|
|
BYTE tmItalic; |
|
|
|
BYTE tmUnderlined; |
|
|
|
BYTE tmStruckOut; |
|
|
|
BYTE tmPitchAndFamily; |
|
|
|
BYTE tmCharSet; |
|
|
} TEXTMETRIC; |
|
A幅、B幅、C幅はGetCharABCDWidths関数を使って求めることができます
トゥルータイプ専用としてOUTLINETEXTMETRIC構造体とGetOutlineTextMetrics関数があります
- tmHeight: 文字の高さ (tmAscentメンバとtmDescentメンバの値の和)
- tmAscent: 文字のベースラインから一番上まで
- tmDescent: 文字のベースラインから一番下まで
- tmInternalLeading: フォントのポイントサイズと物理サイズの差
- tmExternalLeading:
フォントとフォントの間の特殊な空間
- tmAveCharWidth: フォントとの平均の幅
- tmMaxCharWidth: フォントとの平均の高さ
- tmWeight: フォントの太さ
- FW_DONTCARE 0
- FW_THIN 100
- FW_EXTRALIGHT (or FW_EXTRALIGHT) 200
- FW_LIGHT 300
- FW_NORMAL (or FW_REGULAR) 400
- FW_MEDIUM 500
- FW_SEMIBOLD (or FW_DEMIBOLD) 600
- FW_BOLD 700
- FW_EXTRABOLD (or FW_ULTRABOLD) 800
- FW_HEAVY (or FW_BLACK) 900
- tmOverhang:Bold(太字)とItalic(斜め字)など同時に指定したとき少々幅など広げて調節するその幅の値
- tmDigitizedAspectX:フォントが表示されるデバイス(画面やプリンタ)の水平アスペクト値
- tmDigitizedAspectY:フォントが表示されるデバイス(画面やプリンタ)の垂直アスペクト値
- tmFirstChar:フォントで定義されている最初の文字の値
- tmLastChar:フォントで定義されている最後の文字の値
- tmdefaultChar:対応する文字が無いときに代用される文字に値
- tmBreakChar:テキストの位置あわせのときに単語の区切り文字として使われる文字の値
- tmItalic:0以外のときにイタリック体フォントを示す
- tmUnderlined:0以外のときに下線付フォントを示す
- tmStruckOut:0以外のときに打ち消し線付きフォントを示す
- tmPitchAndFamily:選択されたフォントのピッチとファミリを示す
- 下位4ビットの値: OXFでアンド演算(&記号)をする
- TMPF_FIXED_PITCH
文字によって幅などが異なる可変フォントです
- TMPF_VECTOR ベクターフォント
- TMPF_TRUETYPE トゥルータイプフォント
- TMPF_DEVICE デバイスフォント
- 上位4ビットの値: OXF0でアンド演算(&記号)をする
- FF_DONTCARE (0<<4) ファミリーを特に指定しない
- FF_ROMAN (1<<4)
可変ストローク幅を持つセリフ付きフォント(Times New Roman、New
Century Schoolbook等)
- FF_SWISS (2<<4)
可変ストローク幅を持つセリフ無しフォント(MS Sans Serif等)
- FF_MODERN (3<<4)
一定のストローク幅を持つセリフ付き及び無しフォント(Pica、
Elite、 Courier等)
- FF_SCRIPT (4<<4) 手書き風のフォント(Script、Cursive等)
- FF_DECORATIVE (5<<4) 装飾付きフォント(Old English等)
- tmCharSet:フォントの文字セット
- ANSI_CHARSET
- DEFAULT_CHARSET
- SYMBOL_CHARSET
- SHIFTJIS_CHARSET(和文フォント)
- HANGUL_CHARSET
- GB2312_CHARSET
- CHINESEBIG5_CHARSET
- OEM_CHARSET
- JOHAB_CHARSET
- HEBREW_CHARSET
- ARABIC_CHARSET
- GREEK_CHARSET
- TURKISH_CHARSET
- VIETNAMESE_CHARSET
- THAI_CHARSET
- EASTEUROPE_CHARSET
- RUSSIAN_CHARSET
- MAC_CHARSET
- BALTIC_CHARSET
GetTextMetrics関数をつかってどんなフォントが使われているかを調べることができます。
設定されているキャンバス(画面やプリンタ)でのフォントの種類や大きさを取得します
- hDC:画面描画用のキャンパスのハンドル
- lptm:フォントの情報を格納するためのTEXTMETRIC構造体のアドレス
使用例
TEXTMETRIC tm; |
|
GetTextMetrics(hDC,
&tm); |
|