CFontDialog クラス
フォント選択ダイアログ ボックスをアプリケーションに組み込むことができます。
構文
class CFontDialog : public CCommonDialog
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CFontDialog::CFontDialog | CFontDialog オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CFontDialog::D oModal | ダイアログを表示し、ユーザーが選択できるようにします。 |
CFontDialog::GetCharFormat | 選択したフォントの文字書式を取得します。 |
CFontDialog::GetColor | 選択したフォントの色を返します。 |
CFontDialog::GetCurrentFont | 現在選択されているフォントの特性を LOGFONT 構造に割り当てます。 |
CFontDialog::GetFaceName | 選択したフォントの顔名を返します。 |
CFontDialog::GetSize | 選択したフォントのポイント サイズを返します。 |
CFontDialog::GetStyleName | 選択したフォントのスタイル名を返します。 |
CFontDialog::GetWeight | 選択したフォントの太さを返します。 |
CFontDialog::IsBold | フォントが太字かどうかを判断します。 |
CFontDialog::IsItalic | フォントが斜体かどうかを判断します。 |
CFontDialog::IsStrikeOut | フォントを取り消し線付きで表示するかどうかを指定します。 |
CFontDialog::IsUnderline | フォントに下線が付くかどうかを判断します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CFontDialog::m_cf | CFontDialog オブジェクトをカスタマイズするために使用される構造体。 |
解説
CFontDialog
オブジェクトは、現在システムにインストールされているフォントの一覧を含むダイアログ ボックスです。 ユーザーは一覧から特定のフォントを選択でき、この選択内容はアプリケーションに報告されます。
CFontDialog
オブジェクトを構築するには、指定されたコンストラクターを使用するか、新しいサブクラスを派生させ、独自のカスタム コンストラクターを使用します。
CFontDialog
オブジェクトが作成されたら、m_cf
構造体を使用して、ダイアログ ボックスのコントロールの値または状態を初期化できます。 m_cf構造体は、CHOOSEFONT 型です。 この構造の詳細については、Windows SDK を参照してください。
ダイアログ オブジェクトのコントロールを初期化した後、 DoModal
メンバー関数を呼び出してダイアログ ボックスを表示し、ユーザーがフォントを選択できるようにします。 DoModal
は、ユーザーが OK (IDOK) またはキャンセル (IDCANCEL) ボタンを選択したかどうかを返します。
DoModal
が IDOK を返す場合は、CFontDialog
のメンバー関数のいずれかを使用して、ユーザーが入力した情報を取得できます。
Windows CommDlgExtendedError 関数を使用すると、ダイアログ ボックスの初期化中にエラーが発生したかどうかを判断し、エラーの詳細を確認できます。 この関数の詳細については、Windows SDK を参照してください。
CFontDialog
は、Windows バージョン 3.1 以降に付属するCOMMDLG.DLL ファイルに依存しています。
ダイアログ ボックスをカスタマイズするには、 CFontDialog
からクラスを派生させ、カスタム ダイアログ テンプレートを指定し、拡張コントロールからの通知メッセージを処理するメッセージ マップを追加します。 未処理のメッセージは、基底クラスに渡す必要があります。
フック機能のカスタマイズは必要ありません。
CFontDialog
の使用方法の詳細については、「Common ダイアログ クラスを参照してください。
継承階層
CFontDialog
要件
Header: afxdlgs.h
CFontDialog::CFontDialog
CFontDialog
オブジェクトを構築します。
CFontDialog(
LPLOGFONT lplfInitial = NULL,
DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS,
CDC* pdcPrinter = NULL,
CWnd* pParentWnd = NULL);
CFontDialog(
const CHARFORMAT& charformat,
DWORD dwFlags = CF_SCREENFONTS,
CDC* pdcPrinter = NULL,
CWnd* pParentWnd = NULL);
パラメーター
plfInitial
フォントの特性の一部を設定できる LOGFONT データ構造へのポインター。
charFormat
リッチ エディット コントロールでフォントの特性の一部を設定できる CHARFORMAT データ構造へのポインター。
dwFlags
1 つ以上のフォント選択フラグを指定します。 ビットごとの OR 演算子を使用して、1 つ以上の事前設定値を組み合わせることができます。 m_cf.Flag
s 構造体メンバーを変更する場合は、変更内容でビットごとの OR 演算子を使用して、既定の動作をそのままにします。 これらの各フラグの詳細については、Windows SDK の CHOOSEFONT 構造体の説明を参照してください。
pdcPrinter
プリンター デバイス コンテキストへのポインター。 指定すると、このパラメーターはフォントが選択されるプリンターのプリンター デバイス コンテキストを指します。
pParentWnd
フォント ダイアログ ボックスの親ウィンドウまたはオーナー ウィンドウへのポインター。
解説
CHOOSEFONT
構造体のメンバーはコンストラクターによって自動的に入力されることに注意してください。 既定とは異なるフォント ダイアログが必要な場合にのみ、これらを変更する必要があります。
Note
この関数の最初のバージョンは、リッチ エディット コントロールのサポートがない場合にのみ存在します。
例
// Show the font dialog with all the default settings.
CFontDialog dlg;
dlg.DoModal();
// Show the font dialog with 12 point "Times New Roman" as the
// selected font.
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
CClientDC dc(this); // expects a CWnd that has already been initialized
lf.lfHeight = -MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72);
_tcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Times New Roman"));
CFontDialog fdlg(&lf);
fdlg.DoModal();
CFontDialog::D oModal
この関数を呼び出して、Windows の [共通フォント] ダイアログ ボックスを表示し、ユーザーがフォントを選択できるようにします。
virtual INT_PTR DoModal();
戻り値
IDOK または IDCANCEL。 IDCANCEL が返された場合は、Windows CommDlgExtendedError 関数を呼び出して、エラーが発生したかどうかを確認します。
IDOK と IDCANCEL は、ユーザーが [OK] または [キャンセル] ボタンを選択したかどうかを示す定数です。
解説
m_cf構造体のメンバーを設定して、さまざまなフォント ダイアログ コントロールを初期化する場合は、DoModal
を呼び出す前に、ダイアログ オブジェクトを構築した後に行う必要があります。
DoModal
が IDOK を返す場合は、他のメンバー関数を呼び出して、ユーザーがダイアログ ボックスに入力した設定または情報を取得できます。
例
CFontDialog::CFontDialog および CFontDialog::GetColor の例を参照してください。
CFontDialog::GetCharFormat
選択したフォントの文字書式を取得します。
void GetCharFormat(CHARFORMAT& cf) const;
パラメーター
cf
選択したフォントの文字書式に関する情報を含む CHARFORMAT 構造体。
CFontDialog::GetColor
この関数を呼び出して、選択したフォントの色を取得します。
COLORREF GetColor() const;
戻り値
選択したフォントの色。
例
// Get the color of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
COLORREF color = dlg.GetColor();
TRACE(_T("Color of the selected font = %8x\n"), color);
}
CFontDialog::GetCurrentFont
この関数を呼び出して、現在選択されているフォントの特性を LOGFONT 構造体のメンバーに割り当てます。
void GetCurrentFont(LPLOGFONT lplf);
パラメーター
lplf
LOGFONT
構造体へのポインター。
解説
その他の CFontDialog
メンバー関数は、現在のフォントの個々の特性にアクセスするために提供されます。
この関数が DoModal の呼び出し中に呼び出されると、その時点での現在の選択内容 (ユーザーがダイアログで表示または変更したもの) が返されます。 DoModal
の呼び出し後にこの関数が呼び出された場合 (DoModal
が IDOK を返す場合のみ)、ユーザーが実際に選択した内容が返されます。
例
// Get the characteristics of the currently selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
LOGFONT lf;
dlg.GetCurrentFont(&lf);
TRACE(_T("Face name of the selected font = %s\n"), lf.lfFaceName);
}
CFontDialog::GetFaceName
この関数を呼び出して、選択したフォントの顔名を取得します。
CString GetFaceName() const;
戻り値
[ CFontDialog
] ダイアログ ボックスで選択したフォントの顔名。
例
// Get the face name of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
CString facename = dlg.GetFaceName();
TRACE(_T("Face name of the selected font = %s\n"), facename);
}
CFontDialog::GetSize
この関数を呼び出して、選択したフォントのサイズを取得します。
int GetSize() const;
戻り値
フォントのサイズ (ポイントの 10 分の 1)。
例
// Get the size of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
int size = dlg.GetSize();
TRACE(_T("The size of the selected font = %d\n"), size);
}
CFontDialog::GetStyleName
この関数を呼び出して、選択したフォントのスタイル名を取得します。
CString GetStyleName() const;
戻り値
フォントのスタイル名。
例
// Get the style name of the selected font, if any.
CFontDialog dlg;
dlg.m_cf.Flags |= CF_USESTYLE;
if (dlg.DoModal() == IDOK)
{
CString stylename = dlg.GetStyleName();
TRACE(_T("Style name of the selected font = %s\n"), stylename);
}
CFontDialog::GetWeight
この関数を呼び出して、選択したフォントの重みを取得します。
int GetWeight() const;
戻り値
選択したフォントの太さ。
解説
フォントの太さの詳細については、「 CFont::CreateFontを参照してください。
例
// Get the weight of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
int weight = dlg.GetWeight();
TRACE(_T("Weight of the selected font = %d\n"), weight);
}
CFontDialog::IsBold
この関数を呼び出して、選択したフォントが太字かどうかを判断します。
BOOL IsBold() const;
戻り値
選択したフォントで太字の特性が有効になっている場合は 0 以外。それ以外の場合は 0。
例
// Is the selected font bold?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
BOOL bold = dlg.IsBold();
TRACE(_T("Is the selected font bold? %d\n"), bold);
}
CFontDialog::IsItalic
この関数を呼び出して、選択したフォントが斜体かどうかを判断します。
BOOL IsItalic() const;
戻り値
選択したフォントで斜体の特性が有効になっている場合は 0 以外。それ以外の場合は 0。
例
// Is the selected font italic?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
BOOL italic = dlg.IsItalic();
TRACE(_T("Is the selected font italic? %d\n"), italic);
}
CFontDialog::IsStrikeOut
選択したフォントが取り消し線付きで表示されるかどうかを確認するには、この関数を呼び出します。
BOOL IsStrikeOut() const;
戻り値
選択したフォントで取り消し線の特性が有効になっている場合は 0 以外。それ以外の場合は 0。
例
// Is the selected font displayed with strikeout?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
BOOL strikeout = dlg.IsStrikeOut();
TRACE(_T("Is the selected font strikeout? %d\n"), strikeout);
}
CFontDialog::IsUnderline
この関数を呼び出して、選択したフォントに下線が付くかどうかを判断します。
BOOL IsUnderline() const;
戻り値
選択したフォントで下線の特性が有効になっている場合は 0 以外。それ以外の場合は 0。
例
// Is the selected font underlined?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
BOOL underline = dlg.IsUnderline();
TRACE(_T("Is the selected font underlined? %d\n"), underline);
}
CFontDialog::m_cf
ダイアログ オブジェクトの特性を格納するメンバーを持つ構造体。
CHOOSEFONT m_cf;
解説
CFontDialog
オブジェクトを作成した後、m_cf
を使用して、DoModal
メンバー関数を呼び出す前に、ダイアログ ボックスのさまざまな側面を変更できます。 この構造の詳細については、Windows SDK の「 CHOOSEFONT 」を参照してください。
例
// The code fragment creates a font based on the information
// we got from CFontDialog::m_cf variable.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
// Create the font using the selected font from CFontDialog.
LOGFONT lf;
memcpy(&lf, dlg.m_cf.lpLogFont, sizeof(LOGFONT));
CFont font;
VERIFY(font.CreateFontIndirect(&lf));
// Do something with the font just created...
CClientDC dc(this);
CFont *def_font = dc.SelectObject(&font);
dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);
// Done with the font. Delete the font object.
font.DeleteObject();
}