Класс CMFCToolBarFontComboBox
Кнопка панели инструментов, содержащая элемент управления со списком, позволяющий пользователю выбрать шрифт из списка системных шрифтов.
Синтаксис
class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton
Участники
Защищенные конструкторы
Имя | Описание |
---|---|
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox | Формирует объект CMFCToolBarFontComboBox . |
Открытые методы
Имя | Описание |
---|---|
CMFCToolBarFontComboBox::GetFontDesc | Возвращает указатель на CMFCFontInfo объект для указанного индекса в поле со списком. |
CMFCToolBarFontComboBox::SetFont | Выбирает шрифт в поле со списком шрифта в соответствии с именем шрифта или префиксом и набором символов шрифта. |
Элементы данных
CMFCToolBarFontComboBox::m_nFontHeight
Высота символов в поле со списком шрифтов.
Замечания
Чтобы добавить кнопку со списком шрифта на панель инструментов, выполните следующие действия.
Зарезервировать фиктивный идентификатор ресурса для кнопки в родительском ресурсе панели инструментов.
CMFCToolBarFontComboBox
Создание объекта.В обработчике сообщений, обрабатывающего сообщение AFX_WM_RESETTOOLBAR, замените исходную кнопку кнопкой поля со списком с помощью CMFCToolBar::ReplaceButton.
Синхронизируйте шрифт, выбранный в поле со списком, с шрифтом в документе с помощью метода CMFCToolBarFontComboBox::SetFont .
Чтобы синхронизировать шрифт документа с шрифтом, выбранным в поле со списком, используйте метод CMFCToolBarFontComboBox::GetFontDesc , чтобы получить атрибуты выбранного шрифта и использовать эти атрибуты для создания объекта класса CFont.
Кнопка со списком шрифтов вызывает функцию Win32 EnumFontFamiliesEx , чтобы определить шрифты экрана и принтера, доступные для системы.
Иерархия наследования
Требования
Заголовок: 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
Пошаговое руководство. Размещение элементов управления на панели инструментов