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


Класс CMFCToolBarFontComboBox

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

Синтаксис

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Участники

Защищенные конструкторы

Имя Описание
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox Формирует объект CMFCToolBarFontComboBox.

Открытые методы

Имя Описание
CMFCToolBarFontComboBox::GetFontDesc Возвращает указатель на CMFCFontInfo объект для указанного индекса в поле со списком.
CMFCToolBarFontComboBox::SetFont Выбирает шрифт в поле со списком шрифта в соответствии с именем шрифта или префиксом и набором символов шрифта.

Элементы данных

CMFCToolBarFontComboBox::m_nFontHeight
Высота символов в поле со списком шрифтов.

Замечания

Чтобы добавить кнопку со списком шрифта на панель инструментов, выполните следующие действия.

  1. Зарезервировать фиктивный идентификатор ресурса для кнопки в родительском ресурсе панели инструментов.

  2. CMFCToolBarFontComboBox Создание объекта.

  3. В обработчике сообщений, обрабатывающего сообщение AFX_WM_RESETTOOLBAR, замените исходную кнопку кнопкой поля со списком с помощью CMFCToolBar::ReplaceButton.

  4. Синхронизируйте шрифт, выбранный в поле со списком, с шрифтом в документе с помощью метода CMFCToolBarFontComboBox::SetFont .

Чтобы синхронизировать шрифт документа с шрифтом, выбранным в поле со списком, используйте метод CMFCToolBarFontComboBox::GetFontDesc , чтобы получить атрибуты выбранного шрифта и использовать эти атрибуты для создания объекта класса CFont.

Кнопка со списком шрифтов вызывает функцию Win32 EnumFontFamiliesEx , чтобы определить шрифты экрана и принтера, доступные для системы.

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

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Требования

Заголовок: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

Создает объект CMFCToolBarFontComboBox.

public:
CMFCToolBarFontComboBox(
    UINT uiID,
    int iImage,
    int nFontType = DEVICE_FONTTYPE | RASTER_FONTTYPE | TRUETYPE_FONTTYPE,
    BYTE nCharSet = DEFAULT_CHARSET,
    DWORD dwStyle = CBS_DROPDOWN,
    int iWidth = 0,
    BYTE nPitchAndFamily = DEFAULT_PITCH);

protected:
CMFCToolBarFontComboBox(
    CObList* pLstFontsExternal,
    int nFontType,
    BYTE nCharSet,
    BYTE nPitchAndFamily);

CMFCToolBarFontComboBox();

Параметры

uiID
[in] Идентификатор команды поля со списком.

iImage
[in] Отсчитываемый от нуля индекс изображения панели инструментов. Изображение находится в объекте класса CMFCToolBarImages, который поддерживает класс CMFCToolBar.

nFontType
[in] Типы шрифтов, которые содержит поле со списком. Этот параметр может быть сочетанием (логическое ИЛИ) следующих значений:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Если задано значение DEFAULT_CHARSET, поле со списком содержит все однозначно именованные шрифты во всех наборах символов. (Если есть два шрифта с одинаковым именем, поле со списком содержит один из них.) Если задано допустимое значение набора символов, поле со списком содержит только шрифты в указанном наборе символов. Список возможных наборов символов см. в разделе LOGFONT .

dwStyle
[in] Стиль поля со списком. (см. раздел Стили со списком)

iWidth
[in] Ширина в пикселях элемента управления редактирования.

nPitchAndFamily
[in] Если задано значение DEFAULT_PITCH, поле со списком содержит шрифты независимо от поля. Если задано значение FIXED_PITCH или VARIABLE_PITCH, поле со списком содержит только шрифты с этим типом шага. Фильтрация на основе семейства шрифтов в настоящее время не поддерживается.

pLstFontsExternal
[out] Указатель на объект класса CObList, в который хранятся доступные шрифты.

Замечания

CMFCToolBarFontComboBox Обычно объекты хранят список доступных шрифтов в одном общем CObList объекте. Если вы используете вторую перегрузку конструктора и предоставляете допустимый указатель на pLstFontsExternal, этот CMFCToolBarFontComboBox объект вместо этого заполняет CObList точки pLstFontsExternal доступными шрифтами.

Пример

В следующем примере показано, как создать CMFCToolBarFontComboBox объект. Этот фрагмент кода входит в состав примера Word Pad.

CMFCToolBarFontComboBox *CFormatBar::CreateFontComboButton()
{
   // CSize m_szBaseUnits
   return new CMFCToolBarFontComboBox(IDC_FONTNAME,
                                      GetCmdMgr()->GetCmdImage(IDC_FONTNAME, FALSE),
                                      TRUETYPE_FONTTYPE | DEVICE_FONTTYPE,
                                      DEFAULT_CHARSET,
                                      WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN |
                                          CBS_AUTOHSCROLL | CBS_HASSTRINGS | CBS_OWNERDRAWFIXED,
                                      (3 * LF_FACESIZE * m_szBaseUnits.cx) / 2);
}

CMFCToolBarFontComboBox::GetFontDesc

Возвращает указатель на CMFCFontInfo объект для указанного индекса в поле со списком.

const CMFCFontInfo* GetFontDesc(int iIndex=-1) const;

Параметры

iIndex
[in] Задает отсчитываемый от нуля индекс элемента поля со списком.

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

Указатель на объект CMFCFontInfo. Если iIndex не указывает допустимый индекс элемента, возвращаемое значение равно NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Указывает высоту в пикселях символов в поле со списком шрифта, если поле со списком имеет стиль рисования владельца.

static int m_nFontHeight

Замечания

m_nFontHeight Если переменная равно 0, высота вычисляется автоматически в соответствии с шрифтом по умолчанию поля со списком. Высота включает как восхождение символов над базовым планом, так и спуск символов под базовым уровнем.

CMFCToolBarFontComboBox::SetFont

Выбирает шрифт в поле со списком шрифтов в соответствии с именем шрифта и набором символов, указанными в параметрах.

BOOL SetFont(
    LPCTSTR lpszName,
    BYTE nCharSet=DEFAULT_CHARSET,
    BOOL bExact=FALSE);

Параметры

lpszName
[in] Указывает имя шрифта или префикс.

nCharSet
[in] Задает набор символов.

bExact
[in] Указывает, содержит ли lpszName имя шрифта или префикс шрифта.

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

Ненулевое значение, если шрифт был выбран успешно; в противном случае — 0.

Замечания

Если bExact имеет значение TRUE, этот метод выбирает шрифт, который точно соответствует имени, указанному как lpszName. Если bExact имеет значение FALSE, этот метод выбирает шрифт, который начинается с текста, указанного как lpszName , и использует набор символов, указанный как nCharSet. Если для nCharSet задано значение DEFAULT_CHARSET, набор символов будет игнорироваться, и для выбора шрифта будет использоваться только lpszName .

См. также

Диаграмма иерархии
Классы
Класс CMFCToolBar
Класс CMFCToolBarButton
Класс CMFCToolBarComboBoxButton
Класс CMFCFontInfo
CMFCToolBar::ReplaceButton
Пошаговое руководство. Размещение элементов управления на панели инструментов