Visual C++. Описание стандартных классов - CHOOSEFONT

ОГЛАВЛЕНИЕ


CHOOSEFONT

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, функция ChooseFont использует значения переменных объекта структуры LOGFONT для инициализации диалогового окна. При этом выбираются параметры шрифта наиболее близкого к заданным параметрам. Если пользователь нажал кнопку OK, функция ChooseFont устанавливает значения переменных в объекте структуры LOGFONT исходя из установок элементов управления диалогового окна.
  • iPointSize - устанавливает размер выделенного шрифта в единицах, равных 1/10 пики. Функция ChooseFont устанавливает значение данной переменной после закрытия диалогового окна.
  • Flags - набор битовых флагов используемых для инициализации диалогового окна Шрифт. После закрытия данного диалогового окна эти флажки содержат информацию об установках элементов управления диалогового окна. Эта переменная может включать в себя следующие флаги.
    CF_APPLY - диалоговое окно будет включать в себя кнопку Применить. При установке данного флажка пользователь должен написать функцию обратного вызова для обработки сообщения WM_COMMAND, посылаемого кнопкой Применить. Функция обратного вызова может посылать диалоговому окну сообщение WM_CHOOSEFONT_GETLOGFONT для получения указателя на объект структуры LOGFONT, содержащей текущие параметры выделенного шрифта.
    CF_ANSIONLY - данный флаг является устаревшим. Чтобы ограничить выбор шрифтов всеми рукописными шрифтами, кроме использующих набор символов OEM или Symbol, используйте флаг CF_SCRIPTSONLY. Чтобы эмулировать поведение флажка CF_ANSIONLY, используемого в Windows 3.1, используйте флажок CF_SELECTSCRIPT и присвойте значение ANSI_CHARSET переменной lfCharSet объекта структуры LOGFONT, на который указывает переменная lpLogFont.
    CF_BOTH - выводит в диалоговом окне все имеющиеся шрифты принтеров и дисплея. Переменная hDC данного объекта содержит в этом случае контекст устройства (или информационный контекст), связанный с принтером. Этот флажок представляет собой комбинацию флагов CF_SCREENFONTS и CF_PRINTERFONTS.
    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 - делает недоступным раскрывающийся список Набор символов:. При установке данного флага переменной lfCharSet объекта структуры LOGFONT при закрытии диалогового окна присваивается значение DEFAULT_CHARSET. Этот флаг используется только при инициализации диалогового окна.
    CF_NOSTYLESEL - при использовании объекта структуры LOGFONT для инициализации элементов управления диалогового окна, данный флаг предотвращает преждевременный вывод стиля шрифта в соответствующий комбинированный список. Эта установка бывает полезной, если в выделенном фрагменте текста используются различные шрифты.
    CF_NOSIZESEL - при использовании объекта структуры LOGFONT для инициализации элементов управления диалогового окна данный флаг предотвращает преждевременный вывод размера шрифта в соответствующий комбинированный список. Эта установка бывает полезной, если в выделенном фрагменте текста используются различные шрифты.
    CF_NOSIMULATIONS - указывает на то, что функция ChooseFont не должна допускать эмуляции шрифтов интерфейсом графических устройств Windows (GDI).
    CF_NOVECTORFONTS - указывает на то, что функция ChooseFont не должна допускать выделения векторных шрифтов.
    CF_NOVERTFONTS - указывает диалоговому окну Шрифт на необходимость вывода шрифтов только с горизонтальной ориентацией символов.
    CF_PRINTERFONTS - указывает диалоговому окну на необходимость вывода только тех шрифтов, которые поддерживаются принтером, связанным с контекстом устройства (или информационным контекстом), определяемым переменной hDC.
    CF_SCALABLEONLY - указывает на то, что функция ChooseFont должна допускать выделение только масштабируемых шрифтов (к масштабируемым относятся векторные шрифты, масштабируемые шрифты принтеров, шрифты TrueType и шрифты, масштабируемые с использованием других технологий).
    CF_SCREENFONTS - указывает диалоговому окну на необходимость вывода только экранных шрифтов, поддерживаемых системой.
    CF_SCRIPTSONLY - указывает на то, что функция ChooseFont должна допускать выделение шрифтов, использующих набор символов Symbol и ANSI OEM, и не допускать выбора шрифтов, использующих набор символов OEM. Этот флаг заменяет флаг CF_ANSIONLY.
    CF_SELECTSCRIPT - при инициализации диалогового окна этот флажок указывает на то, что в нем необходимо выводить только шрифты, использующие набор символов, определенный в переменной lfCharSet объекта структуры LOGFONT. При этом пользователю запрещается вносить изменения в набор символов, определенный в раскрывающемся списке Набор символов:.
    CF_SHOWHELP - в диалоговом окне будет выведена кнопка Справка. В переменной hwndOwner должно быть определено окно, которое будет получать сообщение HELPMSGSTRING, посылаемое диалоговым окном при нажатии этой кнопки.
    CF_USESTYLE - указывает на то, что в переменной lpszStyle содержится указатель на буфер, содержащий данные о стиле, которые функция ChooseFont должна использовать при инициализации комбинированного списка Начертание:. При закрытии диалогового окна функция ChooseFont копирует данные из этого раскрывающегося списка в указанный буфер.
    CF_WYSIWYG - указывает на то, что функция ChooseFont должна допускать выделение только тех шрифтов, которые присутствуют как на принтере, так и на дисплее. Если установлен данный флажок, то одновременно должны быть установлены флажки CF_BOTH и CF_SCALABLEONLY.
  • rgbColors - если установлен флаг CF_EFFECTS, переменная rgbColors содержит исходный цвет текста. После успешного завершения работы функции ChooseFont эта переменная содержит значения RGB цвета выделенного пользователем текста.
  • lCustData - указатель на блок данных, передаваемых системой функции обратного вызова, указатель на которую содержится в переменной lpfnHook. Когда система посылает сообщение WM_INITDIALOG функции обратного вызова, в аргументе lParam данного сообщения содержится указатель на объект структуры CHOOSEFONT, определенный при создании данного диалогового окна. Функция обратного вызова может использовать этот указатель для получения доступа к переменной lCustData.
  • lpfnHook - указатель на функцию обратного вызова CFHookProc, обрабатывающую сообщения диалогового окна. Значение данной переменной игнорируется, если не установлен флаг CF_ENABLEHOOK в переменной Flags.
  • lpTemplateName - указатель на заканчивающуюся нулем текстовую строку, содержащую имя шаблона ресурса диалогового окна, определенного в переменной hInstance. Этот шаблон используется вместо стандартного шаблона диалогового окна. Для перечислимых ресурсов диалогового окна переменная lpTemplateName может хранить значение, возвращаемое макросом MAKEINTRESOURCE. Значение данной переменной игнорируется, если не установлен флаг CF_ENABLETEMPLATE в переменной Flags.
  • hInstance - если в переменной Flags установлен флаг CF_ENABLETEMPLATEHANDLE, в переменной hInstance содержит дескриптор объекта, расположенного в оперативной памяти, и содержащего шаблон диалогового окна. Если установлен флаг CF_ENABLETEMPLATE, переменная hInstance определяет модуль, содержащий шаблон диалогового окна, имя которого содержится в переменной lpTemplateName. Если ни один из указанных выше флажков не установлен, значение данной переменной игнорируется.
  • 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 - шрифт эмулируется интерфейсом графических устройств Windows (GDI).
  • nSizeMin - определяет минимальный размер выделяемого пользователем шрифта. Функция ChooseFont использует значение этой переменной только при установленном флаге CF_LIMITSIZE.
  • nSizeMax - определяет максимальный размер выделяемого пользователем шрифта. Функция ChooseFont использует значение этой переменной только при установленном флаге CF_LIMITSIZE.

Описание

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