Win32 API. Справочник по стандартному диалоговому окну
Страница 22. Структура CHOOSEFONT


 

Структура CHOOSEFONT

Структура CHOOSEFONT содержит информацию, которую использует функция ChooseFont, чтобы инициализировать стандартное диалоговое окно Шрифт (Font). После того, как пользователь закрывает диалоговое окно, система возвращает информацию о выборе пользователя в этой структуре.

typedef struct 
{
DWORD lStructSize;
HWND hwndOwner;
HDC hDC;
LPLOGFONT lpLogFont;
INT iPointSize;
DWORD Flags;
DWORD rgbColors;
LPARAM lCustData;
LPCFHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
HINSTANCE hInstance;
LPTSTR lpszStyle;
WORD nFontType;
WORD ___MISSING_ALIGNMENT__;
INT nSizeMin;
INT nSizeMax;
} CHOOSEFONT;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет блоком диалога. Этот элемент может быть любым правильным дескриптором окна или он может быть значением ПУСТО (NULL), если у диалогового окна нет владельца.
hDC
Идентифицирует контекст устройства (или информационный контекст) печати, чьи шрифты должны быть внесены в список диалогового окна. Этот элемент используется только тогда, если в элементе Flags установлен флажок CF_PRINTERFONTS или CF_BOTH; в противном случае, этот элемент игнорируется.
lpLogFont
Указатель на структуру LOGFONT. Если вы в элементе Flags установили флажок CF_INITTOLOGFONTSTRUCT и инициализировали элементы LOGFONT, функция ChooseFont инициализирует диалоговое окно со шрифтом, который является наиболее близким возможным соответствием. Если пользователь щелкает по кнопке ОК, ChooseFont устанавливает элементы структуры LOGFONT, основанные на выборе пользователя.
iPointSize
Устанавливает размер выбранного шрифта, в единицах 1/10 пункта. Функция ChooseFon устанавливает это значение после того, как пользователь закроет диалоговое окно
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать стандартное диалоговое окно Шрифт (Font). Когда диалоговое окно возвращает значение, оно устанавливает эти флажки, чтобы показать вводимые данные пользователем. Этот элемент может быть комбинацией следующих флажков:

  • CF_APPLY - Заставляет диалоговое окно показать на экране кнопку Применить (Apply). Вы должны предоставить фильтр - процедуру, чтобы обрабатывать сообщения WM_COMMAND от кнопки Применить (Apply). Фильтр - процедура может передать сообщение WM_CHOOSEFONT_GETLOGFONT в диалоговое окно, чтобы изъять адрес структуры LOGFONT, которая содержит текущий выбор для шрифта.
  • CF_ANSIONLY - Этот флажок устаревший. Чтобы ограничить выбор шрифта для всех записей, за исключением тех, которые используют набор символов OEM или Symbol, используют флажок CF_SCRIPTSONLY. Чтобы получить сведения о поведении Windows 3.1 в соответствии с 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 структуры LOGFONT, указанной в lpLogFont, чтобы определить начальные установки переключателей зачеркивания и подчеркивания. ChooseFont может использовать эти элементы, чтобы возвратить выбор пользователя.
  • CF_ENABLEHOOK - Разрешает действие фильтр - процедуры, определяемой в элементе lpfnHook этой структуры.
  • CF_ENABLETEMPLATE - Показывает, что элементы hInstance и lpTemplateName определяют шаблон диалогового окна, чтобы использовать его вместо заданного по умолчанию шаблона.
  • CF_ENABLETEMPLATEHANDLE - Показывает, что элемент hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpTemplateName, если этот флажок установлен.
  • CF_FIXEDPITCHONLY - Определяет, что функция ChooseFont должна выбирать только моноширинные шрифты.
  • CF_FORCEFONTEXIST - Определяет, что функция ChooseFont должна показать состояние ошибки, если пользователь стремится выбрать шрифт или стиль, который не существует.
  • CF_INITTOLOGFONTSTRUCT - Определяет, что функция ChooseFont должна использовать структуру LOGFONT, указанную элементом 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 - При использовании структуры LOGFONT, чтобы инициализировать управляющие элементы диалогового окна, используйте этот флажок, чтобы избирательно не дать диалоговому окну отображать на экране начальный выбор размера шрифта для комбинированного блока диалога. Это полезно, когда нет хотя бы единственного размера шрифта, который применяется в выбранном тексте.
  • 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 цвета текста, который выбрал пользователь.
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную элементом lpfnHook. Когда система передает сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру CHOOSEFONT, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру 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 NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлcommdlg.h
УникодWinNT
Замечания по платформеНе имеется

 
« Предыдущая статья   Следующая статья »