Поделиться через


Класс 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. Дополнительные сведения об этой структуре см. в пакете SDK для Windows.

После инициализации элементов управления диалогового окна вызовите DoModal функцию-член, чтобы отобразить диалоговое окно и разрешить пользователю выбрать шрифт. DoModal возвращает значение, выбранное пользователем кнопкой "ОК" (IDOK) или "Отмена" (IDCANCEL).

Если DoModal возвращает идентификатор IDOK, можно использовать одну из CFontDialogфункций-членов для получения входных данных пользователем.

Вы можете использовать функцию Windows CommDlgExtendedError , чтобы определить, произошла ли ошибка во время инициализации диалогового окна и узнать больше об ошибке. Дополнительные сведения об этой функции см. в пакете SDK для Windows.

CFontDialog использует файл COMMDLG.DLL, который поставляется с Windows версии 3.1 и более поздними версиями.

Чтобы настроить диалоговое окно, наследуйте класс, CFontDialogпредоставьте пользовательский шаблон диалогового окна и добавьте карту сообщений для обработки сообщений уведомлений из расширенных элементов управления. Все необработанные сообщения должны передаваться в базовый класс.

Настройка функции перехватчика не требуется.

Дополнительные сведения об использовании CFontDialogсм. в разделе "Общие классы диалогов".

Иерархия наследования

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFontDialog

Требования

Заголовок: 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
Указывает один или несколько флагов выбора шрифта. Одно или несколько предустановленных значений можно объединить с помощью побитового оператора OR. Если вы изменяете член структуры m_cf.Flag, используйте оператор OR в изменениях, чтобы сохранить поведение по умолчанию. Дополнительные сведения о каждом из этих флагов см. в описании структуры CHOOSEFONT в пакете SDK для Windows.

pdcPrinter
Указатель на контекст принтера. Если этот параметр задан, он указывает на контекст принтера, для которого выбираются шрифты.

pParentWnd
Указатель на родительское окно или окно владельца диалогового окна шрифта.

Замечания

Обратите внимание, что конструктор автоматически заполняет члены структуры CHOOSEFONT. Их следует изменять, только если вам требуется диалоговое окно, отличное от стандартного.

Примечание.

Первая версия этой функции существует, только если элементы управления форматированным редактированием не поддерживаются.

Пример

// 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 — это константы, указывающие, выбран ли пользователь кнопку "ОК" или "Отмена".

Замечания

Если вы хотите инициализировать различные элементы управления диалоговым окном шрифта, задав элементы структуры 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;

Возвращаемое значение

Размер шрифта в десятых точках.

Пример

// 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.

Пример

// 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.

Пример

// 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;

Возвращаемое значение

Ненулевое значение, если выбранный шрифт имеет функцию Strikeout, включена; в противном случае — 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.

Пример

// 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 функции-члена. Дополнительные сведения об этой структуре см. в разделе CHOOSEFONT в пакете SDK для Windows.

Пример

// 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();
}

См. также

Пример HIERSVR MFC
Класс CCommonDialog
Диаграмма иерархии