LOGFONT構造体を使うと次のようになります。 前回と同じ内容です。
//
// MyApp.h
//
class MyApp : public MyMainWnd{
public:
// WM_PAINT
void wmPaint(HDC hdc){
MyDC g(hdc);
HFONT hOldFont, hNewFont;
// フォント
LOGFONT Font; // LOGFONT構造体
Font.lfHeight = -13; // 文字の高さ
Font.lfWidth = 0; // 文字幅
Font.lfEscapement = 0; // 文字方向とX軸との角度
Font.lfOrientation = 0; // 各文字とX軸との角度
Font.lfWeight = FW_NORMAL; // 太さ
Font.lfItalic = FALSE; // イタリック体
Font.lfUnderline = FALSE; // 下線
Font.lfStrikeOut = FALSE; // 打ち消し線
Font.lfCharSet = SHIFTJIS_CHARSET; // キャラクタセット
Font.lfOutPrecision = OUT_DEFAULT_PRECIS; // 出力精度
Font.lfClipPrecision = CLIP_DEFAULT_PRECIS; // クリッピングの精度
Font.lfQuality = ANTIALIASED_QUALITY; // 出力品質
Font.lfPitchAndFamily = VARIABLE_PITCH | FF_MODERN; // ピッチとファミリ
lstrcpy(Font.lfFaceName, L"MS Pゴシック"); // フォント名
hNewFont = CreateFont(Font.lfHeight, Font.lfWidth, Font.lfEscapement,
Font.lfOrientation, Font.lfWeight, Font.lfItalic,
Font.lfUnderline, Font.lfStrikeOut, Font.lfCharSet,
Font.lfOutPrecision, Font.lfClipPrecision, Font.lfQuality,
Font.lfPitchAndFamily, Font.lfFaceName);
hOldFont = (HFONT)SelectObject(hdc, hNewFont);
g.TextOut(10, 10, L"Hello!");
SelectObject(hdc, hOldFont); // 元のフォントに戻す
DeleteObject(hNewFont); // フォントを開放
}
};
結果は前回と同じです。
LOGFONT構造体は次のようになっています。引数は14個です。 CreateFont関数の引数と同じです。
typedef struct tagLOGFONT {
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;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;
構造体なので継承ができます。