ChooseFont関数を使用してフォント選択ダイアログボックスを表示する際の初期化情報を格納します。ユーザーがダイアログボックスを閉じると、ユーザーに選択されたフォントの情報がこの構造体に格納されます。
typedef struct { DWORD lStructSize; // 構造体サイズ(=60) HWND hwndOwner; // オーナーウィンドウハンドル HDC hDC; // プリンタのデバイスハンドル LPLOGFONT lpLogFont; // LOGFONT構造体のアドレス INT iPointSize; // サイズ(ポイント数) DWORD Flags; // フラグ DWORD rgbColors; // 文字色 LPARAM lCustData; // アプリケーション定義値 LPCFHOOKPROC lpfnHook; // フックプロシージャアドレス LPTCSTR lpTemplateName; // テンプレートリソース名 HINSTANCE hInstance; // モジュールインスタンス LPTSTR lpszStyle; // スタイルデータ WORD nFontType; // フォントタイプ WORD ___MISSING_ALIGNMENT__; INT nSizeMin; // サイズ最小値 INT nSizeMax; // サイズ最大値 } CHOOSEFONT, *LPCHOOSEFONT;
この構造体のサイズをバイト単位で指定します。60を指定します。
ダイアログボックスのオーナーウィンドウのハンドルを指定します。
0 (NULL) を指定すると、オーナーウィンドウを持たないダイアログボックスが作成されます。
プリンタのデバイスコンテキスト(または情報コンテキスト)のハンドルを指定します。ここで指定したプリンタがサポートするフォントがリスト表示されます。
このメンバは、FlagsメンバでCF_PRINTERFONTSまたはCF_BOTHが指定されている場合のみ有効です。それ以外の場合は、このメンバは無視されます。
LOGFONT構造体のアドレスを指定します。
FlagsメンバにCF_INITTOLOGFONTSTRUCTを指定した場合は、この構造体で指定したフォントに最も近いフォントが選択されている状態でダイアログボックスが初期化されます。
ユーザーによってダイアログボックスの [OK] ボタンが押されると、ChooseFont関数はこの構造体に選択されたフォントの情報を格納します。
フォントサイズを1/10ポイント単位で指定します。ユーザーがダイアログボックスを閉じた後に、設定されたフォントサイズが格納されます。
オプションフラグを指定します。以下の値の組み合わせで指定します。
システムがサポートしているスクリーンフォントのみがリスト表示されます。
hDCメンバで指定されたデバイスコンテキスト(または情報コンテキスト)に関連付けられているプリンタがサポートするフォントのみがリスト表示されます。
システムがサポートしているスクリーンフォントとhDCメンバで指定されたデバイスコンテキスト(または情報コンテキスト)に関連付けられているプリンタがサポートするフォントがリスト表示されます。このフラグはCF_SCREENFONTSとCF_PRINTERFONTSの組み合わせです。
ヘルプボタンを表示します。hwndOwnerメンバには、ヘルプボタンが押されたときに送られる ("commdlg_help") 登録メッセージを受け取るウィンドウを指定しなければなりません。
lpfnHookメンバで指定されたフックプロシージャを有効にします。
hInstanceメンバとlpTemplateNameメンバで指定されたダイアログボックステンプレートをデフォルトテンプレートの代わりに使用します。
hInstanceメンバで指定されたメモリブロックに含まれるダイアログボックステンプレートを使用します。lpTemplateNameメンバは無視されます。
ダイアログボックスをlpLogFontメンバが指し示すLOGFONT構造体で指定されたフォントが選択された状態に初期化します。
フォントスタイルコンボボックスをlpszStyleメンバが指し示すバッファで指定されたスタイルデータで初期化します。ユーザーがダイアログボックスを閉じた後に、このバッファにスタイルデータが格納されます。
ユーザーが打ち消し線・下線・文字色を指定できるようにします。このフラグが指定されると、rgbColorsに初期の文字色を指定することができます。また、lpLogFontメンバが指し示すLOGFONT構造体のlfStrikeOutメンバとlfUnderlineメンバに初期の設定を指定することができます。ユーザーがダイアログボックスを閉じた後に、これらのメンバに選択された設定が格納されます。
ダイアログボックスに [適用] ボタンを表示します。フックプロシージャ中でLOGFONT構造体を取得することができます。
メッセージを処理する必要があります。フックプロシージャは、ダイアログボックスに メッセージを送信して、現在選択されているフォント情報が格納された非OEM文字セットやシンボル文字セットを選択できるようにします。
ベクトルフォントを選択できないようにします。
GDIフォントシミュレーションを行なわないようにします。
nSizeMinメンバおよびnSizeMaxメンバで、フォントサイズの範囲を制限します。
固定ピッチフォントのみを選択できるようにします。
ディスプレイとプリンタの両方で使用可能なフォントのみを選択できるようにします。CF_BOTHとCF_SCALABLEONLYをともに指定しなければなりません。
存在しないフォントやスタイルをユーザーが選択しようした場合には、関数がエラーを返すようにします。
スケーリング可能なフォント(ベクトルフォント、スケーリング可能プリンタフォント、TrueTypeフォント、およびその他の技術によってスケーリング可能なフォント)のみを選択できるようにします。
TrueTypeフォントのみを選択できるようにします。
ダイアログボックスの初期状態を設定するのにLOGFONT構造体の情報を使用する場合、初期状態でフォント名のコンボボックスに何も選択されていないようにします。
ダイアログボックスの初期状態を設定するのにLOGFONT構造体の情報を使用する場合、初期状態でフォントスタイルのコンボボックスに何も選択されていないようにします。
ダイアログボックスの初期状態を設定するのにLOGFONT構造体の情報を使用する場合、初期状態でフォントサイズのコンボボックスに何も選択されていないようにします。
LOGFONT構造体のlfCharSetメンバで指定された文字セットを持つフォントのみが表示されます。文字セットコンボボックスで指定される文字セットをユーザーが変更することができないようになります。
文字セットのコンボボックスを無効にします。ユーザーがダイアログボックスを閉じた後に、LOGFONT構造体のlfCharSetメンバには1 (DEFAULT_CHARSET) が格納されます。
水平方向のフォントのみがリスト表示されます。
FlagsメンバでCF_EFFECTSを指定した場合は、文字色の初期値をRGB (COLORREF) 値で指定します。ユーザーがダイアログボックスを閉じた後に、ユーザーに選択された文字色のRGB値がこのメンバに格納されます。
lpfnHookメンバで指定されたフックプロシージャに渡すアプリケーション定義の値を指定します。システムがフックプロシージャに メッセージを送るとき、このメッセージのlParamパラメータは、ダイアログボックス作成時に指定されたCHOOSEFONT構造体のアドレスになります。フックプロシージャは、そのアドレスで指定された構造体を参照してlCustDataメンバの値を取得することができます。
CFHookProcフックプロシージャのアドレスを指定します。
FlagsメンバにCF_ENABLEHOOKフラグが指定されていない場合にはこのメンバは無視されます。
hInstanceメンバで指定されたモジュールに含まれるダイアログボックスのテンプレートリソースの名前を表す文字列のアドレスを指定します。番号付けされたダイアログボックスリソースの場合は、その整数値を指定します。
FlagsメンバにCF_ENABLETEMPLATEが指定されていない場合にはこのメンバは無視されます。
FlagsメンバにCF_ENABLETEMPLATEHANDLEを指定した場合は、ダイアログボックスのテンプレートリソースを含むメモリオブジェクトのハンドルを指定します。
FlagsメンバにCF_ENABLETEMPLATEを指定した場合は、lpTemplateNameメンバで指定された名前のダイアログボックスのテンプレートリソースを含むモジュールのハンドルを指定します。
それ以外の場合にはこのメンバは無視されます。
スタイルデータを含むバッファのアドレスを指定します。FlagsメンバにCF_USESTYLEを指定した場合は、このバッファのデータを使用してフォントスタイルコンボボックスが初期化されます。ユーザーがダイアログボックスを閉じた後に、フォントスタイルコンボボックスの文字列がこのバッファに格納されます。
選択されたフォントのタイプが格納されます。以下の値の組み合わせになります。
フォントは太字体のフォントです。この情報は、LOGFONT構造体のlfWeightメンバにも反映され、FW_BOLDと同等になります。
イタリック体のフォント属性が設定されます。この情報は、LOGFONT構造体のlfItalicメンバにも反映されます。
フォントは通常の太さのフォントです。この情報は、LOGFONT構造体のlfWeightメンバにも反映され、FW_REGULARと同等になります。
フォントはスクリーンフォントです。
フォントはプリンタフォントです。
フォントはGDIによってシミュレートされます。
ユーザーが選択可能なフォントサイズ(ポイント数)の最小値を指定します。FlagsメンバにCF_LIMITSIZEを指定した場合にのみ有効です。
ユーザーが選択可能なフォントサイズ(ポイント数)の最大値を指定します。FlagsメンバにCF_LIMITSIZEを指定した場合にのみ有効です。
Windows 95 以降 / Windows NT 4.0 以降
HSP 変数 | メンバ | |||
---|---|---|---|---|
メンバ名 | オフセット | サイズ | ||
chfont.0 | lStructSize ( = 60 ) | 0 | 4 | |
chfont.1 | hwndOwner | 4 | 4 | |
chfont.2 | hDC | 8 | 4 | |
chfont.3 | lpLogFont | 12 | 4 | |
chfont.4 | iPointSize | 16 | 4 | |
chfont.5 | Flags | 20 | 4 | |
chfont.6 | rgbColors | 24 | 4 | |
chfont.7 | lCustData | 28 | 4 | |
chfont.8 | lpfnHook | 32 | 4 | |
chfont.9 | lpTemplateName | 36 | 4 | |
chfont.10 | hInstance | 40 | 4 | |
chfont.11 | lpszStyle | 44 | 4 | |
chfont.12 | 下位ワード | nFontType | 48 | 2 |
上位ワード | 未使用(アライメント処理) | 50 | 2 | |
chfont.13 | nSizeMin | 52 | 4 | |
chfont.14 | nSizeMax | 56 | 4 |