Структура CHOOSEFONT содержит информацию, которую использует функция ChooseFont, чтобы инициализировать диалоговое окно Шрифт (Font). После того, как пользователь закроет диалоговое окно, система возвращает информацию о выборе пользователя в этой структуре.
Синтаксис
typedef struct { DWORD lStructSize; HWND hwndOwner; HDC hDC; LPLOGFONT lpLogFont; INT iPointSize; DWORD Flags; COLORREF rgbColors; LPARAM lCustData; LPCFHOOKPROC lpfnHook; LPCTSTR lpTemplateName; HINSTANCE hInstance; LPTSTR lpszStyle; WORD nFontType; INT nSizeMin; INT nSizeMax; } CHOOSEFONT, *LPCHOOSEFONT; |
Члены структуры
lStructSize
Определяет длину структуры в байтах.hwndOwner
Дескриптор окна, которое владеет блоком диалога. Этот член структуры может быть любым допустимым дескриптором окна или значением ПУСТО (NULL), если у диалогового окна нет владельца.hDC
Дескриптор контекста устройства (или информационного контекста) принтера, шрифты которого должны быть внесены в список диалогового окна. Этот член структуры используется только тогда, если в члене Flags установлен флажок CF_PRINTERFONTS или CF_BOTH; в противном случае, этот член игнорируется.
lpLogFont
Указатель на структуру. Если вы в члене Flags установили флажок CF_INITTOLOGFONTSTRUCT и инициализировали члены структуры LOGFONT, функция ChooseFont инициализирует диалоговое окно со шрифтом, который является наиболее близким возможным соответствием. Если пользователь щелкает по кнопке ОК, ChooseFont устанавливает члены структуры LOGFONT, основываясь на выборе пользователя.
iPointSize
Устанавливает размер выбранного шрифта, в единицах 1/10 пункта. Функция ChooseFon устанавливает это значение после того, как пользователь закроет диалоговое окно
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно Шрифт (Font). Когда диалоговое окно возвращает значение, оно устанавливает эти флажки, чтобы обозначить вводимые данные пользователем. Этот член может быть комбинацией следующих значений.
Значение | Предназначение |
CF_APPLY | Заставляет диалоговое окно показать на экране кнопку Применить (Apply). Вы должны предусмотреть фильтр - процедуру, чтобы обрабатывать сообщения WM_COMMAND от кнопки Применить (Apply). Фильтр - процедура может отправить сообщение WM_CHOOSEFONT_GETLOGFONT в диалоговое окно, чтобы получить адрес структуры, которая содержит текущие выборы для шрифта. |
CF_ANSIONLY | Этот флажок устаревший. Чтобы ограничить выбор шрифта для всех записей, за исключением тех, которые используют набор символов OEM или Symbol, используют флажок CF_SCRIPTSONLY. Чтобы получить изначальное поведение флажка CF_ANSIONLY, используйте CF_SELECTSCRIPT, и определите ANSI_CHARSET в члене lfCharSet структуры LOGFONT, указанной в lpLogFont. |
CF_BOTH | Заставляет диалоговое окно внести в список доступный принтер и экранные шрифты. Член hDC - это дескриптор контекста устройства (или информационного контекста) связанного с принтером. Этот флажок - комбинация флажков CF_PRINTERFONTS и CF_SCREENFONTS. |
CF_TTONLY | Определяет, что функция ChooseFont должна перечислять и давать возможность выбора только шрифтов TrueType. |
CF_EFFECTS | Заставляет диалоговое окно показать на экране органы управления, которые позволяют пользователю устанавливать опции зачеркивания, подчеркивания и цвета текста. Если этот флажок установлен, вы можете использовать член rgbColors, чтобы определить исходный цвет текста. Вы можете использовать члены lfStrikeOut и lfUnderline структуры, указанной в lpLogFont, чтобы определить начальные установки в окошках флажков зачеркивания и подчеркивания. ChooseFont может использовать эти члены, чтобы возвратить выборы пользователя. |
CF_ENABLEHOOK | Подключает фильтр (hook) - процедуру, определяемую в члене lpfnHook этой структуры. |
CF_ENABLETEMPLATE | Показывает, что члены hInstance и lpTemplateName определяют шаблон диалогового окна, чтобы использовать его вместо заданного по умолчанию шаблона. |
CF_ENABLETEMPLATEHANDLE | Показывает, что член hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует член lpTemplateName, если этот флажок установлен. |
CF_FIXEDPITCHONLY | Определяет, что функция ChooseFont должна выбирать только моноширинные шрифты. |
CF_FORCEFONTEXIST | Определяет, что функция ChooseFont должна показать состояние ошибки, если пользователь стремится выбрать шрифт или стиль, который не существует. |
CF_INITTOLOGFONTSTRUCT | Определяет, что функция ChooseFont должна использовать структуру, указанную членом lpLogFont, чтобы инициализировать органы управления диалогового окна. |
CF_LIMITSIZE | Определяет, что функция ChooseFont должна выбирать размеры шрифта только внутри диапазона, определяемого членами nSizeMin и nSizeMax. |
CF_NOOEMFONTS | То же самое, что и флажок CF_NOVECTORFONTS. |
CF_NOFACESEL | При использовании структуры LOGFONT, чтобы инициализировать органы управления диалогового окна, используйте этот флажок, который выборочно не допустит отображения на экране диалоговым окном первоначального выбора имени шрифта для комбинированного блока. Это полезно тогда, когда нет хотя бы одного наименования шрифта, который применяется в выбранном тексте. |
CF_NOSCRIPTSEL | Отключает комбинированный блок Набор символов (Script). Когда этот флажок установлен, член lfCharSet структуры LOGFONT устанавливается в DEFAULT_CHARSET, затем ChooseFont возвращает значение. Этот флажок используется только для того, чтобы инициализировать диалоговое окно. |
CF_NOSTYLESEL | При использовании структуры LOGFONT, чтобы инициализировать органы управления диалогового окна, применяйте этот флажок, который избирательно не дает диалоговому окну отображать на экране начальный выбор стиля шрифта для комбинированного блока диалога. Это полезно, когда нет хотя бы единственного стиля шрифта, который применяется в выбранном тексте. |
CF_NOSIZESEL |
При использовании структуры, которая инициализирует органы управления диалогового окна, используйте этот флажок, чтобы избирательно не дать диалоговому окну отображать на экране начальный выбор размера шрифта для комбинированного блока диалога. Это полезно тогда, когда нет хотя бы единственного размера шрифта, который применяется в выбранном тексте. |
CF_NOSIMULATIONS |
Определяет, что функция ChooseFont не должна позволять графическому интерфейсу устройства (GDI) моделировать шрифт. |
CF_NOVECTORFONTS | Определяет, что функция ChooseFont не должна позволять выбор векторного шрифта. |
CF_NOVERTFONTS | Заставляет диалоговое окно Шрифт (Font) внести в список только горизонтально ориентированные шрифты. |
CF_PRINTERFONTS | Заставляет диалоговое окно внести в список только шрифты, поддерживаемые принтером, связанным с контекстом устройства (или информационным контекстом) идентифицированным членом hDC. |
CF_SCALABLEONLY | Определяет, что функция ChooseFont должна позволить выбор только масштабируемых шрифтов. (Масштабируемые шрифты включают в себя векторные шрифты, масштабируемые встроенные шрифты принтера, шрифты TrueType, и шрифты, масштабируемые другими технологиями.) |
CF_SCREENFONTS | Заставляет диалоговое окно внести в список только экранные шрифты, поддерживаемые системой. |
CF_SCRIPTSONLY | Определяет, что функция ChooseFont должна позволить выбор шрифтов для всех не - OEM и Symbol наборов символов, а также набора символов ANSI. Этот флажок заменяет значение CF_ANSIONLY. |
CF_SELECTSCRIPT | Когда это значение установлено при вводе данных, на экране отображаются только шрифты с набором символов, идентифицированным в члене lfCharSet структуры LOGFONT. Пользователю не будет позволено изменить набор символов, определяемый в комбинированном блоке диалога Набор символов (Scripts). |
CF_SHOWHELP | Заставляет диалоговое окно показывать на экране кнопку Справка (Help). Член hwndOwner должен определить окно, которое примет зарегистрированные сообщения HELPMSGSTRING, отправляемые диалоговым окном, когда пользователь щелкает мышью по кнопке Справка (Help). |
CF_USESTYLE |
Определяет, что член структуры lpszStyle указывает на буфер, содержащий данные о стиле, которые функция ChooseFont должна использовать, чтобы инициализировать комбинированный блок диалога Стиль Шрифта (Font Style). Когда пользователь закрывает диалоговое окно, ChooseFont копирует данные о стиле, выбранном пользователем, из этого буфера. |
CF_WYSIWYG | Определяет, что функция ChooseFont должна позволить выбор только шрифтов, доступных и для принтера и для дисплея. Если этот флажок установлен, флажки CF_BOTH и CF_SCALABLEONLY также должны быть установлены. |
rgbColors
Если флажок CF_EFFECTS установлен, rgbColors определяет начальный цвет текста. Когда функция ChooseFont успешно возвращает значение, этот член содержит значение RGB цвета текста, который выбрал пользователь. Чтобы создать код цвета COLORREF, используйте макрос RGB.
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр (hook) - процедуру, идентифицированную членом lpfnHook. Когда система отправляет сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру CHOOSEFONT, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.lpfnHook
Указатель на фильтр (hook) - процедуру CFHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот член игнорируется, если в члене Flags не установлен флажок CF_ENABLEHOOK.
lpTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном членом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов блока диалога, lpTemplateName может быть значением, возвращенным макрокомандой MAKEINTRESOURCE. Этот член игнорируется, если в члене Flags не установлен флажок CF_ENABLETEMPLATE.
hInstance
Если в члене Flags установлен флажок CF_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок CF_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный членом lpTemplateName. Если ни CF_ENABLETEMPLATEHANDLE ни CF_ENABLETEMPLATE не установлен, этот член игнорируется.
lpszStyle
Указатель на буфер, который содержит данные о стиле. Если установлен флажок CF_USESTYLE, функция ChooseFont использует данные в этом буфере, чтобы инициализировать стиль шрифта комбинированного блока диалога. Когда пользователь закрывает диалоговое окно, ChooseFont в этот буфер копирует строку стиля шрифта в комбинированном блоке диалога.
nFontType
Определяет тип выбранного шрифта, когда ChooseFont возвращает значение. Этот член может быть комбинацией следующих значений.
Значение | Предназначение | |
BOLD_FONTTYPE | Толщина шрифта - полужирная. Эта информация дублируется в члене lfWeight структуры LOGFONT и эквивалентна FW_BOLD. | |
ITALIC_FONTTYPE | Устанавливает атрибут шрифта курсив. Эта информация дублируется в члене lfItalic структуры LOGFONT. | |
PRINTER_FONTTYPE | Этот шрифт является встроенным шрифтом принтера. | |
REGULAR_FONTTYPE | Толщина шрифта нормальная. Эта информация дублируется в члене lfWeight структуры LOGFONT и эквивалентна FW_REGULAR. | |
SCREEN_FONTTYPE | Этот шрифт является шрифтом экрана. | |
SIMULATED_FONTTYPE | Этот шрифт моделируется графическим интерфейсом устройства (GDI). |
nSizeMin
Определяет минимальный размер шрифта в пунктах, который пользователь может выбирать. Функция ChooseFont распознает этот элемент только в том случае, если установлен флажок CF_LIMITSIZE.
nSizeMax
Определяет максимальный размер шрифта в пунктах, который пользователь может выбирать. Функция ChooseFont распознает этот элемент только в том случае, если установлен флажок CF_LIMITSIZE.
Смотри также
Обзор Библиотека стандартных диалоговых окон, Структуры, используемые библиотекой стандартных диалоговых окон, ChooseFont, LOGFONT, MAKEINTRESOURCE
Размещение и совместимость CHOOSEFONT |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Заголовочный файл |
|
- объявлено в |
Commdlg.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |