Структура CHOOSEFONT


Структура 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

Нет

Замечания по платформе

Не имеется

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz