フォント・ダイアログを使う
フォントの設定を行うためのコモンダイアログです。「CFontDialogクラス」を使用します。
以下に、その概要を記述します。
【生成書式】
CFontDialog(LPLOGFONT lplfInitial = NULL, //選択結果を入れるLOGFONT構造体
DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, //カスタマイズフラグ
CDC* pdcPrinter = NULL, //プリンタのデバイスコンテキストへのポインタ
CWnd* pParentWnd = NULL ); //親ウィンドウ
カスタマイズフラグ( DWORD dwFlags ):
このフラグはダイアログボックスの機能と概観をカスタマイズするためのものです。
主なdwFlagsの値を示します。
----------------------------------------------------------------------------
| dwFlags値 | 意味 |
----------------------------------------------------------------------------
| CF_APPLY | 「更新」ボタンを有効 |
----------------------------------------------------------------------------
| CF_BOTH |プリンタをスクリーンフォントのリスト表示 |
----------------------------------------------------------------------------
| CF_TTONLY |TrueTypeフォントのみ有効 |
----------------------------------------------------------------------------
| CF_EFFECTS |取消線、下線、カラーの各機能を有効 |
----------------------------------------------------------------------------
| CF_FIXEDPITCHONLY |固定ピッチフォントのみ選択 |
----------------------------------------------------------------------------
| CF_INITTOLOGFONTSTRUCT |LOGFONT構造体で初期化 |
----------------------------------------------------------------------------
| CF_LIMITSIZE |nSizeMin、nSizeMaxによる指定を有効 |
----------------------------------------------------------------------------
| CF_PRINTERFONTS |プリンタ・フォントのみ有効 |
----------------------------------------------------------------------------
| CF_SCALABLEONLY |スケーラブル・フォントのみ有効 |
----------------------------------------------------------------------------
| CF_SCREENFONTS |スクリーン・フォントのみ有効 |
----------------------------------------------------------------------------
| CF_SCRIPTSONLY |非OEMセットとシンボルセットを選択可能 |
----------------------------------------------------------------------------
| CF_SHOWHELP |「ヘルプ」ボタンを表示する |
----------------------------------------------------------------------------
| CF_WYSIWYG |プリンタと画面の両方で使えるフォントのみ選択可能 |
----------------------------------------------------------------------------
【ダイアログボックスの外観】
m_cfメンバ変数(CHOOSEFONT型構造体)を調整すると、表示されるダイアログボックスの外観を細かく
調整することが出来ます。
「CHOOSEFONT型構造体」
typedef struct {
DWORD lStructSize; //構造体のサイズ(単位:Byte)
HWND hwndOwner; //親ウィンドウ(オーナーウィンド)のハンドル
HDC hDC; //プリンタのデバイスコンテキスト
LPLOGFONT lpLogFont; //LOGFONT構造体へのポインタ
INT iPointSize; //フォントのサイズ(1/10ポイント単位)
DWORD Flags; //初期化設定フラグ
DWORD rgbColors; //テキストカラーのRGB
LPARAM lCustData; //アプリケーション定義データ
LPCFHOOKPROC lpfnHook; //フック関数のポインタ
LPCTSTR lpTemplateName; //ダイアログボックスの名前
HINSTANCE hInstance; //インスタンスハンドル
LPTSTR lpszStyle; //スタイルデータ
WORD nFontType; //フォントタイプ
WORD ___MISSING_ALIGNMENT__; //使用しない
INT nSizeMin; //選択可能な最小ポイント・サイズ
INT nSizeMax; //選択可能な最大ポイント・サイズ
} CHOOSEFONT;
【結果の取得】
LOGFONT構造体に選択したフォントなどの結果が入ります。従って、この構造体を直接参照すれば
結果を取得することが出来ます。また、フォント情報取得用の関数による取得も可能です。
「LOGFONT構造体」
typedef struct tagLOGFONT {
LONG lfHeight; //高さ
LONG lfWidth; //幅
LONG lfEscapement; //文字送り(
LONG lfOrientation; //方位
LONG lfWeight; //文字の太さ
BYTE lfItalic; //斜体
BYTE lfUnderline; //下線
BYTE lfStrikeOut; //取消線
BYTE lfCharSet; //キャラクターセット(ANSI,OEM,etc)
BYTE lfOutPrecision; //
BYTE lfClipPrecision; //
BYTE lfQuality; //
BYTE lfPitchAndFamily; //
TCHAR lfFaceName[LF_FACESIZE]; //
} LOGFONT;
「フォント情報取得用の関数」
----------------------------------------------------------------------------
| 関数名 | 説明 |
----------------------------------------------------------------------------
| GetCurrentFont |フォント情報を取得 |
----------------------------------------------------------------------------
| GetFaceName |フォントの書体を返す |
----------------------------------------------------------------------------
| GetStyleName |フォントのスタイル名を返す |
----------------------------------------------------------------------------
| GetSize |フォントのポイントサイズ |
----------------------------------------------------------------------------
| GetColor |フォントのカラー |
----------------------------------------------------------------------------
| GetWeight |フォントの太さ |
----------------------------------------------------------------------------
| IsStrikeOut |取消線付かどうかを返す |
----------------------------------------------------------------------------
| IsUnderline |下線付かどうかを返す |
----------------------------------------------------------------------------
| IsBold |太字かどうかを返す |
----------------------------------------------------------------------------
| IsItalic |斜体かどうかを返す |
----------------------------------------------------------------------------