Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Кнопка панели инструментов, содержащая элемент управления со списком, позволяющий пользователю выбрать шрифт из списка системных шрифтов.
Синтаксис
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, этот объект вместо этого заполняет CMFCToolBarFontComboBoxCObList доступными шрифтами.
Пример
В следующем примере показано, как создать 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
Пошаговое руководство. Размещение элементов управления на панели инструментов