Поиск по сайту:



Проверить аттестат

Мы принимаем Яндекс.Деньги

Смотри также:

Как составить программу для игровой приставки "DENDY" - Статья.

MSDN по русски. Описание классов C++ .NET - Статья.

Как составить программу для "DENDY" - Статья.

MSDN по русски. Описание классов C++ .NET - Статья.

Все новинки...

Статья «MSDN по русски. Описание классов C++ .NET»

Поделиться:

1    2    3    4    5    6    7    8    9    10

HH_WINTYPE

typedef struct tagHH_WINTYPE {
  int cbStruct;
  BOOL fUniCodeStrings;
  LPCTSTR pszType;
  DWORD fsValidMembers;
  DWORD fsWinProperties;
  LPCTSTR pszCaption;
  DWORD dwStyles;
  DWORD dwExStyles;
  RECT rcWindowPos;
  int nShowState;
  HWND hwndHelp;
  HWND hwndCaller;
  HH_INFOTYPE* paInfoTypes;
  HWND hwndToolBar;
  HWND hwndNavigation;
  HWND hwndHTML;
  int iNavWidth;
  RECT rcHTML;
  LPCTSTR pszToc;
  LPCTSTR pszIndex;
  LPCTSTR pszFile;
  LPCTSTR pszHome;
  DWORD fsToolBarFlags;
  BOOL fExpanded;
  int curNavType;
  int tabpos;
  int idNotify;
  BYTE tabOrder[HH_MAX_TABS + 1];
} HH_WINTYPE;

Переменные

cbStruct - размер объекта структуры. Значение этой переменной должно быть определено до того, как данный объект структуры будет передан функции HtmlHelp.
fUniCodeStrings - определяет, являются ли строки данной структуры строками Unicode.
pszType - указатель на заканчивающуюся нулем строку, содержащую имя типа окна.
fsValidMembers - используется при изменении свойств сушествующего типа окна и определяет его обновляемые свойства. В данной переменной могут быть установлены следующие флаги.
HHWIN_PARAM_PROPERTIES - используется переменная fsWinProperties.
HHWIN_PARAM_STYLES - используется переменная dwStyles.
HHWIN_PARAM_EXSTYLES - используется переменная dwExStyles.
HHWIN_PARAM_RECT - используется переменная rcWindowPos.
HHWIN_PARAM_NAV_WIDTH - используется переменная rcNavigation.
HHWIN_PARAM_SHOWSTATE - используется переменная nShowState.
HHWIN_PARAM_INFOTYPES - используется переменная ainfoTypes.
HHWIN_PARAM_TB_FLAGS - используется переменная fsToolBarFlags.
HHWIN_PARAM_EXPANSION - используется переменная fExpanded.
HHWIN_PARAM_TABPOS - используется переменная tabpos.
HHWIN_PARAM_TABORDER - используется переменная tabOrder.
HHWIN_PARAM_HISTORY_COUNT - используется переменная cHistory.
fsWinProperties - используется для задания различных свойств окна. В данной переменной могут быть установлены следующие флаги.
HHWIN_PROP_ONTOP - определяет, что окно будет отображаться не только поверх родительского окна, но и поверх всех остальных окон на рабочем столе.
HHWIN_PROP_NOTITLEBAR - запрещает вывод заголовка окна.
HHWIN_PROP_NODEF_STYLES - запрещает использование при создании окна стилей, заданных по умолчанию. По умолчанию задается следующая комбинация стилей: WS_THICKFRAME | WS_OVERLAPPED | WS_VISIBLE.
HHWIN_PROP_NODEF_EXSTYLES - запрещает использование при создании окна расширенных стилей, заданных по умолчанию. При задании этого флага флаг HHWIN_PROP_ONTOP игнорируется.
HHWIN_PROP_TRI_PANE - создает окно с тремя панелями. Этот флаг не изменяет вида уже созданного окна.
HHWIN_PROP_NOTB_TEXT - запрещает вывод текста под кнопками панели инструментов окна с тремя панелями.
HHWIN_PROP_POST_QUIT - при закрытии окна справки оно посылает сообщение WM_QUIT в очередь сообщений вызвавшего приложения, что приведет к его закрытию.
HHWIN_PROP_AUTO_SYNC - определяет, что при выводе вкладок оглавления или индекса в них отображается заголовок темы или ключевое слово, соответствующее текущему URL. Если URL для нового файла HTML отсутствует, в этих вкладках не происходит никаких изменений.
HHWIN_PROP_TRACKING - задает режим посылки вызвавшему приложению следящих извещений.
HHWIN_PROP_TAB_SEARCH - включает вкладку текстового поиска в панель навигации окна с тремя панелями.
HHWIN_PROP_TAB_HISTORY - включает вкладку результатов предыдущего поиска в панель навигации окна с тремя панелями. Это свойство не поддерживается в версии 1.
HHWIN_PROP_TAB_FAVORITES - включает вкладку наиболее часто встречающихся тем в панель навигации окна с тремя панелями. Это свойство не поддерживается в версии 1.
HHWIN_PROP_CHANGE_TITLE - выводит в заголовке окна справочной системы заголовок отображаемого файла HTML.
HHWIN_PROP_TAB_ADVANCED - включает вкладку расширенного поиска в панель навигации окна с тремя панелями.
pszCaption - указатель на заканчивающуюся нулем строку, содержащую заголовок окна.
dwStyles - определяет стили создаваемого окна. Стили могут игнорироваться, комбинироваться со стилями, используемыми по умолчанию или использоваться отдельно, в зависимости от значений переменных fsValidMembers и fsWinProperties.
dwExStyles - определяет дополнительные стили создаваемого окна. Стили могут игнорироваться, комбинироваться со стилями, используемыми по умолчанию или использоваться отдельно, в зависимости от значений переменных fsValidMembers иfsWinProperties.
rcWindowPos - содержит координаты окна. При задании координат все отрицательные значения игнорируются. Например, для перемещения окна с сохранением его размеров необходимо задать позицию левого верхнего угла прямоугольника, а координатам его правого нижнего угла присвоить значения -1.
nShowState - определяет исходный режим отображения окна.
hwndHelp - содержит дескриптор создаваемого окна справочной системы.
hwndCaller - содержит дескриптор окна, которому будут посылаться сообщения.
paInfoTypes - определяет типы выводимой информации. Каждый тип выводимой информации представляет собой флаг. Если не установлен нулевой флаг, то все команды HTML Help, использующие различные типы выводимой информации, будут использовать эти флаги для определения того, какой UI необходимо отображать и когда следует произвести переход по гиперссылке.
hwndToolBar - дескриптор окна Панель инструментов окна справочной системы, содержащей три панели.
hwndNavigation - дескриптор окна, содержащего текущий UI навигации в окне, имеющем три панели.
hwndHTML - дескриптор окна, в которое выводятся файлы HTML в окне, имеющем три панели. Это окно является родительским для SHDOCVW.
iNavWidth - определяет ширину панели навигации в окне, имеющем три панели, при его развертывании.
rcHTML - определяет координаты панели HTML в окне, имеющем три панели.
pszToc - определяет файл или URL, используемый в оглавлении окна, имеющего три панели.
pszIndex - определяет файл или URL, используемый в индексаторе окна, имеющего три панели.
pszFile - определяет файл или URL, используемый в правой панели окна, имеющего три панели. Этот файл будет отображаться при нажатии пользователем кнопки Home (Домой) на панели инструментов.
pszHome - определяет файл или URL, используемый в правой панели окна, имеющего три панели, отображаемый при нажатии пользователем кнопки Home (Домой) на панели инструментов.
fsToolBarFlags - определяет набор кнопок панели инструментов, отображаемой в окне, имеющем три панели. В данной переменной могут быть установлены следующие флаги:
HHWIN_BUTTON_EXPAND - кнопка Expand/contract (Расширить) в панели навигации;
HHWIN_BUTTON_BACK - кнопка Back (Назад);
HHWIN_BUTTON_FORWARD - кнопка Forward (Вперед);
HHWIN_BUTTON_STOP - кнопка Stop (Остановить);
HHWIN_BUTTON_REFRESH - кнопка Refresh (Обновить);
HHWIN_BUTTON_HOME - кнопка Home (Домой) (для файла HTML, заданного для окна);
HHWIN_BUTTON_HISTORY - кнопка History (Журнал);
HHWIN_BUTTON_FAVORITES - кнопка Favorites (Избранное);
HHWIN_BUTTON_TOC - кнопка Table of Contents (Содержание);
HHWIN_BUTTON_INDEX - кнопка Index (Предметный указатель);
HHWIN_BUTTON_SEARCH - кнопка Simple search (Поиск);
HHWIN_BUTTON_JUMP1 - кнопка Jump1 (Переход1);
HHWIN_BUTTON_JUMP2 - кнопка Jump2 (Переход2).
fExpanded - определяет необходимость вывода панели навигации в окне, имеющем три панели.

curNavType - определяет навигационный UI, выводимый в панели навигации окна, имеющего три панели. Эта переменная может принимать одно из следующих значений:
HHWIN_NAVTYPE_TOC - выводится вкладка Contents (Содержание);
HHWIN_NAVTYPE_INDEX - выводится вкладка Index (Предметный указатель).
tabpos - определяет положение вкладок в навигационной панели окна, имеющего три панели. Эта переменная может принимать одно из следующих значений:
HHWIN_NAVTAB_TOP - вкладки выводятся сверху;
HHWIN_NAVTAB_LEFT - вкладки выводятся слева;
HHWIN_NAVTAB_BOTTOM - вкладки выводятся снизу.
idNotify - определяет идентификатор, указываемый в аргументе WPARAM сообщения WM_NOTIFY.
tabOrder - определяет порядок вкладок в навигационной панели окна, имеющего три панели. Для использования этой переменной следует установить флаг HHWIN_PARAM_TABORDER. Первые десять позиций зарезервированы для стандартных вкладок HTML Help: Contents (Содержание), Index (Предметный указатель), Search (Поиск), History (Журнал), Favorites (Избранное) и Reserved 1-5 (зарезервированы для последующего использования). Каждый байт содержит численное значение, соответствующее позиции, начиная с нулевой. Например, для вывода вкладки Index (Предметный указатель) первой, а вкладки Contents (Содержание) - второй, необходимо произвести следующие присваивания: tabOrder[HH_TAB_CONTENTS] = 1 и tabOrder[HH_TAB_INDEX] = 0.
cHistory - определяет число хранимых результатов последних поисков. В настоящее время значение этой переменной игнорируется.
pszJump1 - содержит URL, по которому будет произведен переход при нажатии кнопки Jump1 (Переход1).
pszJump2 - содержит URL, по которому будет произведен переход при нажатии кнопки Jump2 (Переход2).

Описание
Объекты структуры HH_WINTYPE используются при создании, изменении или получении свойств окон справочной системы HTML. Типы окна могут определяться разработчиком и храниться в скомпилированном файле HTML, или же определяться в программе с использованием функции HtmlHelp. Каждый тип окна должен иметь уникальное имя. Если при обращении к функции HtmlHelp указано имя несуществующего типа окна, то для этого имени будет создан новый тип окна, свойства которого будут установлены по умолчанию.
HH_POPUP

typedef struct tagHH_POPUP
{
  int cbStruct;
  HINSTANCE hinst;
  UINT idString;
  LPCTSTR pszText;
  POINT pt;
  COLORREF clrForeground;
  COLORREF clrBackground;
  RECT rcMargins;
  LPCTSTR pszFont;
} HH_POPUP;

Переменные

cbStruct - размер объекта структуры. Значение этой переменной должно быть определено до того, как данный объект структуры будет передан функции HtmlHelp.
hinst - дескриптор экземпляра программы или библиотеки динамической компоновки (DLL), в которой содержится строковый ресурс. Значение данной переменной игнорируется, если переменная idString имеет нулевое значение или в функцииHtmlHelp передается имя файла.
idString - содержит идентификатор строкового ресурса или номер темы в текстовом файле.
pszText - содержит выводимый текст, если переменная idString имеет нулевое значение.
pt - определяет координаты центральной точки верхней границы всплывающего окна.
clrForeground - содержит цвет выводимого текста. Если эта переменная имеет значение -1, используется цвет текста, выбранный по умолчанию.
clrBackground - содержит цвет фона. Если эта переменная имеет значение -1, используется цвет фона, выбранный по умолчанию.
rcMargins - определяет отступ от границ рабочей области окна. По умолчанию все члены данного объекта структуры имеют единичные значения.
pszFont - содержит необязательную текстовую строку, определяющую используемый шрифт. Эта строка имеет следующий формат: facename[,point size[,charset[,color[, BOLD ITALIC UNDERLINE]]]]. При пропуске какого-либо элемента шрифта сохраняются выделяющие его запятые. Например, для задания курсивного шрифта Times New Roman следует использовать следующую строку Times New Roman, , , , ITALIC.

Описание
Объект структуры HH_POPUP используется для вывода текста во всплывающих окнах. Этот тип окон обеспечивает максимальную скорость вывода неформатированной текстовой информации. Исходный текст может располагаться в строковом ресурсе, текстовой строке или в текстовом файле.
LOGFONT

typedef struct tagLOGFONT { // lf
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;

Переменные

lfHeight - определяет высоту ячейки шрифта или символа в логических единицах. Высота символа представляет собой высоту ячейки символа минус межстрочный интервал. Программа масштабирования шрифтов воспринимает возможные значения данной переменной следующим образом:
> 0 - программа масштабирования шрифтов преобразует эту величину в единицы устройства и сопоставляет ее с высотой ячеек имеющихся шрифтов;
0 - программа масштабирования шрифтов использует при поиске значение, установленное по умолчанию;
< 0 - программа масштабирования шрифтов преобразует эту величину в единицы устройства и использует ее абсолютное значение для задания высоты символов.
При проведении всех сравнений высоты программа масштабирования шрифтов ищет максимальный шрифт, размеры которого не превышают заданных величин. Преобразование производится при первом использовании шрифта. В режиме отображенияMM_TEXT для определения высоты шрифта по его размеру в элементах изображения может быть использована следующая формула:
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
lfWidth - определяет среднюю ширину символов в логических единицах. Если данная переменная имеет нулевое значение, то коэффициент сжатия устройства сопоставляется с отношением ширины знака к его высоте для имеющихся шрифтов с целью нахождения ближайшего соответствия, определяемого по абсолютной величине разности.
lfEscapement - определяет угол наклона, выраженный в десятках градусов, между базовой линией строки текста и горизонтальной осью устройства. В Windows NT в графическом режиме GM_ADVANCED имеется возможность определять угол наклона базовой линии строки текста независимо от угла ориентации символов в строке. В Windows 95 и в графическом режиме GM_COMPATIBLE Windows NT переменная lfEscapement определяет одновременно угол наклона базовой линии строки текста и ориентацию символов. Поэтому переменные lfEscapement и lfOrientation должны иметь одно и то же значение.
lfOrientation - определяет угол наклона, выраженный в десятках градусов, между базовой линией каждого символа в строке текста и горизонтальной осью устройства.
lfWeight - определяет вес шрифта, значение которого находится в диапазоне от 0 до 1000. Например значение 400 соответствует обычному шрифту, а значение 700 - полужирному шрифту. Если данная переменная имеет нулевое значение, то используется значение веса шрифта, установленное по умолчанию. В таблице П2.7. приведены предопределенные значения веса шрифта:
Таблица П2.7. Предопределенные значения веса шрифта Идентификатор Значение FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900
lfItalic - если эта величина имеет значение TRUE, то текст выводится курсивом.
lfUnderline - если эта величина имеет значение TRUE, то текст выводится с подчеркиванием.
lfStrikeOut - если эта величина имеет значение TRUE, то текст выводится с зачеркиванием.
lfCharSet - определяет используемый набор символов. Может иметь следующие значения: ANSI_CHARSETBALTIC_CHARSETCHINESEBIG5_CHARSETDEFAULT_CHARSETEASTEUROPE_CHARSETGB2312_CHARSETGREEK_CHARSETHANGUL_CHARSET,MAC_CHARSETOEM_CHARSETRUSSIAN_CHARSETSHIFTJIS_CHARSETSYMBOL_CHARSET и TURKISH_CHARSET. В корейской версии Windows определено значение JOHAB_CHARSET. В ближневосточной версии Windows определены значения HEBREW_CHARSET иARABIC_CHARSET. В таиландской версии Windows определено значение THAI_CHARSET.
Набор символов OEM_CHARSET зависит от используемой версии Windows. Набор символов DEFAULT_CHARSET при задании имени и размера шрифта полностью определяет логический шрифт. Если задаваемое имя шрифта не существует, то вместо заданного может использоваться шрифт с любым набором символов. Поэтому необходимо осторожно подходить к использованию набора символов DEFAULT_CHARSET.
В операционной системе могут существовать шрифты с другими наборами символов. Если приложение использует шрифт с неизвестным набором символов, оно не пытается преобразовать или интерпретировать строку, выведенную с использованием данного шрифта.
Эта переменная используется при масштабировании символов. Для получения надежных результатов необходимо использовать стандартные наборы символов. При определении начертания шрифта в переменной lfFaceName убедитесь, что значение переменной lfCharSet соответствует набору символов, определенному для начертания, определяемого переменной lfFaceName.
lfOutPrecision - определяет точность представления символов. Под точностью представления символов понимается то, насколько точно высота, ширина, ориентация символа, тип шрифта, наклон и наклон базовой линии выводимого символа должны соответствовать заданным. Данная переменная может принимать одно из следующих значений:
OUT_CHARACTER_PRECIS - не используется;
OUT_DEFAULT_PRECIS - задает параметры масштабирования, используемые по умолчанию;
OUT_DEVICE_PRECIS - сообщает процедуре масштабирования шрифтов о необходимости использования шрифта устройства, если в системе определены несколько шрифтов с одним и тем же именем;
OUT_OUTLINE_PRECIS - сообщает процедуре масштабирования шрифтов о необходимости использования шрифтов TrueType и подобных им шрифтов. Это значение используется только в Windows NT;
OUT_RASTER_PRECIS - сообщает процедуре масштабирования о необходимости использования растровых шрифтов, если в системе определены несколько шрифтов с одним и тем же именем;
OUT_STRING_PRECIS - данная величина не используется процедурой масштабирования шрифтов, но она возвращается при нумерации растровых шрифтов;
OUT_STROKE_PRECIS - в Windows NT данная величина не используется процедурой масштабирования шрифтов, но она возвращается при нумерации шрифтов TrueType и подобных им шрифтов, а также векторных шрифтов. В Windows 95 данная величина используется процедурой масштабирования шрифтов, и возвращается при нумерации шрифтов TrueType и векторных шрифтов;
OUT_TT_ONLY_PRECIS - сообщает процедуре масштабирования шрифтов о необходимости использования только шрифтов TrueType. Если в системе не определены шрифты TrueType, процедура масштабирования шрифтов использует параметры, используемые по умолчанию;
OUT_TT_PRECIS - сообщает процедуре масштабирования шрифтов о необходимости использования шрифтов TrueType, если в системе определены несколько шрифтов с одним и тем же именем.
Приложение использует значения OUT_DEVICE_PRECISOUT_RASTER_PRECIS и OUT_TT_PRECIS для задания режима, в котором процедура масштабирования шрифтов выбирает шрифт при наличии в операционной системе нескольких шрифтов с одним и тем же именем. Например, если в операционной системе определены растровый и TrueType шрифты с именем Symbol, присваивание данной переменной значения OUT_TT_PRECIS заставляет процедуру масштабирования шрифтов выбрать версию TrueType. Присваивание значения OUT_TT_ONLY_PRECIS заставляет процедуру масштабирования шрифтов выбрать версию TrueType даже в том случае, когда ей придется для этого выбрать шрифт TrueType с другим именем.
lfClipPrecision - определяет точность процедуры отсечки. Под точностью процедуры отсечки понимают то, как поступать с символами, частично выходящими за область отсечки. Данная переменная может принимать одно из следующих значений:
CLIP_DEFAULT_PRECIS - требует использовать процедуру отсечки, определенную по умолчанию;
CLIP_CHARACTER_PRECIS - не используется;
CLIP_STROKE_PRECIS - не используется процедурой масштабирования шрифтов, но возвращается при нумерации растровых, векторных или TrueType шрифтов. В Windows NT для совместимости эта величина всегда возвращается при нумерации шрифтов;
CLIP_MASK - не используется;
CLIP_EMBEDDED - этот флаг используется при работе с внедренными шрифтами, имеющими атрибут "только для чтения".
CLIP_LH_ANGLES - определяет вращение всех шрифтов, происходящее по часовой или против часовой стрелки, в зависимости от направления осей системы координат. Если данная переменная не используется, то все шрифты устройств вращаются против часовой стрелки, но вращение всех других шрифтов будет зависеть от направления осей системы координат. Дополнительную информацию о направлении осей системы координат можно получить из описания переменной nOrientation;
CLIP_TT_ALWAYS - не используется.
lfQuality - определяет качество выводимых символов. Качество выводимых символов определяет, с какой точностью интерфейс графических устройств (GDI) должен добиваться соответствия параметров логического шрифта параметрам используемого физического шрифта. Данная переменная может принимать одно из следующих значений:
DEFAULT_QUALITY - качество выводимого шрифта не имеет значения;
DRAFT_QUALITY - качество шрифта может быть хуже, чем при использовании значения PROOF_QUALITY. При использовании растровых шрифтов возможно использование масштабирования, что расширяет диапазон размеров шрифтов за счет снижения их качества. При необходимости синтезируются жирные, курсивные, подчеркнутые и зачеркнутые шрифты;
PROOF_QUALITY - при выводе символов шрифта требуется обеспечить совпадение дополнительных параметров, кроме указанных в атрибутах логического шрифта. Для растровых шрифтов нельзя использовать операцию масштабирования и необходимо выбрать ближайший по размерам шрифт. Хотя при выборе размера шрифта может быть использован шрифт другого размера, значение PROOF_QUALITY обеспечивает более высокое качество отображения символов и отсутствие искажений при их выводе. При необходимости синтезируются жирные, курсивные, подчеркнутые и зачеркнутые шрифты.
lfPitchAndFamily - определяет, будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит данный шрифт. Два наименее значимых бита определяют, будет ли шрифт иметь фиксированную или переменную ширину литер, и могут принимать одно из следующих значений: DEFAULT_PITCHFIXED_PITCH и VARIABLE_PITCH. Биты с 4 по 7 данной переменной определяют семейство, к которому принадлежит данный шрифт, и могут принимать одно из следующих значений: FF_DECORATIVEFF_DONTCAREFF_MODERNFF_ROMANFF_SCRIPT и FF_SWISS.
Полное значение данной переменной получается с использованием операции логического ИЛИ между константой, определяющей ширину литер, и константой, определяющей семейство.
Семейство шрифтов определяет их общее начертание. Оно используется для определения шрифтов при отсутствии более точного определения их начертания. Используемые в данном случае семейства шрифтов имеют следующие отличительные особенности:
FF_DECORATIVE - нестандартный шрифт. Например Old English;
FF_DONTCARE - начертание шрифта не имеет значение или неизвестно;
FF_MODERN - шрифт с постоянной шириной штриха, имеющий или не имеющий засечек. К этим шрифтам относятся современные шрифты, такие как Pica, Elite и CourierNew;
FF_ROMAN - шрифт с переменной шириной штриха (пропорциональный) имеющий засечки. Примером данного шрифта является Serif;
FF_SCRIPT - шрифт подобный рукописному. Примером данного шрифта являются Script и Cursive;
FF_SWISS - шрифт с переменной шириной штриха (пропорциональный) не имеющий засечек. Примером данного шрифта является Sans Serif.
lfFaceName - текстовая строка, завершающаяся нулем, содержащая имя шрифта. Длина данной строки не должна превышать 32 символа, включая завершающий ее нулевой символ. Для нумерации всех имен доступных шрифтов может использоваться функция EnumFontFamilies. Если строка lfFaceName пуста, GDI использует первый шрифт, соответствующий всем другим заданным атрибутам.

Описание
Объект структуры LOGFONT используется для задания атрибутов шрифта.
NMHDR

typedef struct tagNMHDR
{
   HWND hwndFrom;
   UINT idFrom;
   UINT code;
} NMHDR;

Переменные

hwndFrom - дескриптор окна элемента управления, пославшего извещение. Для преобразования дескриптора в указатель на объект класса CWnd используется функция CWnd::FromHandle.
idFrom - идентификатор элемента управления, пославшего извещение.
code - код извещения. Эта переменная может иметь значение, определяемое типом элемента управления, например, TBN_BEGINADJUST или TTN_NEEDTEXT, или может принимать одно из значений стандартных извещений, перечисленных ниже: NM_CLICK - пользователь щелкнул левой кнопкой мыши по элементу управления;
NM_DBLCLK - пользователь дважды щелкнул левой кнопкой мыши по элементу управления;
NM_KILLFOCUS - элемент управления потерял фокус ввода;
NM_OUTOFMEMORY - элемент управления не может завершить операцию вследствие недостатка оперативной памяти;
NM_RCLICK - пользователь щелкнул правой кнопкой мыши по элементу управления;
NM_RDBLCLK - пользователь дважды щелкнул правой кнопкой мыши по элементу управления;
NM_RETURN - данному элементу управления принадлежит в настоящее время фокус ввода и пользователь нажал клавишу ;
NM_SETFOCUS - элемент управления получил фокус ввода.

Описание
Используется в функциях обработки сообщений в формате WM_NOTIFY.
OUTLINETEXTMETRIC

typedef struct _OUTLINETEXTMETRIC
{
   UINT otmSize;
   TEXTMETRIC otmTextMetrics;
   BYTE otmFiller;
   PANOSE otmPanoseNumber;
   UINT otmfsSelection;
   UINT otmfsType;
   int otmsCharSlopeRise;
   int otmsCharSlopeRun;
   int otmItalicAngle;
   UINT otmEMSquare;
   int otmAscent;
   int otmDescent;
   UINT otmLineGap;
   UINT otmsCapEmHeight;
   UINT otmsXHeight;
   RECT otmrcFontBox;
   int otmMacAscent;
   int otmMacDescent;
   UINT otmMacLineGap;
   UINT otmusMinimumPPEM;
   POINT otmptSubscriptSize;
   POINT otmptSubscriptOffset;
   POINT otmptSuperscriptSize;
   POINT otmptSuperscriptOffset;
   UINT otmsStrikeoutSize;
   int otmsStrikeoutPosition;
   int otmsUnderscoreSize;
   int otmsUnderscorePosition;
   PSTR otmpFamilyName;
   PSTR otmpFaceName;
   PSTR otmpStyleName;
   PSTR otmpFullName;
} OUTLINETEXTMETRIC;

Переменные

otmSize - содержит размер структуры OUTLINETEXTMETRIC в байтах.
otmTextMetrics - объект структуры TEXTMETRIC, содержащий дополнительную информацию о шрифте.
otmFiller - задает выравнивание структуры по границе байта.
otmPanoseNumber - определяет число PANOSE для данного шрифта.
otmfsSelection - содержит флаги шрифта. Разрядам данной переменной соответствуют следующие флаги:
0 - наклонный;
1 - подчеркнутый;
2 - инвертированный;
3 - контурный;
4 - зачеркнутый;
5 - полужирный.
otmfsType - определяет лицензионность шрифта. Лицензионный шрифт не должен изменяться или обмениваться. Если в данной переменной установлен бит 1, данный шрифт не может быть внедрен в документ. В противном случае шрифт может внедряться в документ. Если установлен бит 2, то разрешается внедрение данного шрифта в режиме "только для чтения".
otmsCharSlopeRise - определяет ориентацию текстового курсора. Если эта переменная равна 1, то текстовый курсор имеет вертикальную ориентацию. Приложение может использовать данную переменную и значение переменной otmsCharSlopeRunдля создания текстовых курсоров для курсивных шрифтов, в которых курсор имеет тот же угол наклона, что и символы шрифта (угол определяется переменной otmItalicAngle).
otmsCharSlopeRun - определяет ориентацию текстового курсора. Если эта переменная равна 0, то текстовый курсор имеет вертикальную ориентацию. Приложение может использовать данную переменную и значение переменной otmsCharSlopeRiseдля создания текстовых курсоров для курсивных шрифтов, в которых курсор имеет тот же угол наклона, что и символы шрифта (угол определяется переменной otmItalicAngle).
otmItalicAngle - определяет угол наклона шрифта в десятых долях градуса против часовой стрелки от вертикального положения. Для регулярных шрифтов (roman) эта переменная имеет нулевое значение.
otmEMSquare - определяет горизонтальные и вертикальные размеры квадрата em данного шрифта в логических единицах (горизонтальные и вертикальные размеры квадрата em равны).
otmAscent - определяет максимальное расстояние от базовой линии до верхней точки любого символа шрифта.
otmDescent - определяет максимальное расстояние от базовой линии до нижней точки любого символа шрифта.
otmLineGap - определяет типографский межстрочный интервал.
otmsCapEmHeight - не используется.
otmsXHeight - не используется.
otmrcFontBox - определяет прямоугольник, описывающий символы шрифта.
otmMacAscent - определяет максимальное расстояние от базовой линии до верхней точки любого символа шрифта для компьютеров Macintosh.
otmMacDescent - определяет максимальное расстояние от базовой линии до нижней точки любого символа шрифта для компьютеров Macintosh.
otmMacLineGap - определяет типографский межстрочный интервал для компьютеров Macintosh.
otmusMinimumPPEM - определяет минимальный рекомендуемый размер данного шрифта в элементах изображения на квадрат em.
otmptSubscriptSize - определяет рекомендуемые горизонтальный и вертикальный размеры подстрочных символов данного шрифта.
otmptSubscriptOffset - определяет рекомендуемое горизонтальное и вертикальное смещение подстрочных символов данного шрифта. Смещение подстрочных символов шрифта измеряется от начала координат символа до начала координат подстрочного символа.
otmptSuperscriptSize - определяет рекомендуемые горизонтальный и вертикальный размеры верхних индексов символов данного шрифта.
otmptSuperscriptOffset - определяет рекомендуемое горизонтальное и вертикальное смещение верхних индексов данного шрифта. Смещение верхнего индекса шрифта измеряется от начала координат символа до начала координат верхнего индекса.
otmsStrikeoutSize - определяет ширину символа зачеркивания для данного шрифта. Обычно эта величина равна ширине em - подчеркивания в шрифте.
otmsStrikeoutPosition - определяет положение символа зачеркивания относительно базовой линии шрифта. Положительные значения означают расположение выше базовой линии, а отрицательные - ниже.
otmsUnderscoreSize - определяет ширину символа подчеркивания для данного шрифта.
otmsUnderscorePosition - определяет положение символа зачеркивания данного шрифта.
otmpFamilyName - определяет смещение строки, содержащей имя семейства шрифта, от начала структуры.
otmpFaceName - определяет смещение строки, содержащей имя начертания шрифта, от начала структуры (это имя должно соответствовать имени, определенному в объекте структуры LOGFONT).
otmpStyleName - определяет смещение строки, содержащей имя стиля шрифта, от начала структуры.
otmpFullName - определяет смещение строки, содержащей полное имя шрифта, от начала структуры. Данное имя является уникальным для данного шрифта и часто содержит имя версии или другую идентификационную информацию.

Описание
Данная структура содержит атрибуты шрифта TrueType. Все размеры в ней задаются в логических единицах, то есть они зависят от текущего режима масштабирования, заданного в контексте устройства.
RGBQUAD

typedef struct tagRGBQUAD
{ // rgbq
   BYTE rgbBlue;
   BYTE rgbGreen;
   BYTE rgbRed;
   BYTE rgbReserved;
} RGBQUAD;

Переменные

rgbBlue - определяет интенсивность синего цвета.
rgbGreen - определяет интенсивность зеленого цвета.
rgbRed - определяет интенсивность красного цвета.
rgbReserved - зарезервирована, должна иметь нулевое значение.

Описание
Объект структуры RGBQUAD содержит описание цвета интенсивностями его красной, зеленой и синей составляющих. Переменная bmiColors объекта структуры BITMAPINFO представляет собой массив объектов структуры RGBQUAD. Описание данной структуры содержится в файле заголовка wingdi.h.