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 ダイアログ クラスを参照してください。

継承階層

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

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.Flags 構造体メンバーを変更する場合は、変更内容でビットごとの 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();
}

関連項目

MFC サンプル HIERSVR
CCommonDialog クラス
階層図