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


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

Компьютерная графика - Статья.

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

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

Бердский филиал Новосибирского государственного технического университета - Статья.

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

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

Поделиться:

1    2    3    4    5    6    7    8    9    10   

BITMAPINFO

typedef struct tagBITMAPINFO
{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;

Переменные

bmiHeader - объект структуры BITMAPINFOHEADER, содержащий информацию о размере и формате цветов аппаратно-независимого битового образа.
bmiColors - массив переменных типа RGBQUAD или DWORD, определяющий цвета в используемой палитре.

Описание
Объект структуры BITMAPINFO используется для хранения информации о размере и палитре аппаратно-независимого битового образа (DIB). Описание аппаратно-независимого битового образа состоит из двух частей: объекта структуры BITMAPINFO, описывающего размеры и палитру, используемую данным битовым образом, и массива, содержащего информацию о яркости и цвете каждого из элементов изображения данного битового образа. Информация в массиве упакована по строкам и должна быть выровнена по границе двойного слова (переменной типа LONG). Для этого в конец каждой строки добавляются нулевые значения, выравнивающие ее длину до указанной границы. При задании положительного значения высоты битового образа его нулевая позиция будет располагаться в левом нижнем углу выделенного прямоугольника. В противном случае нулевая позиция будет располагаться в левом верхнем углу этого прямоугольника. Переменная biBitCount объекта структурыBITMAPINFOHEADER определяет число бит, используемых для кодирования цвета одного элемента изображения. Эта переменная может принимать одно из следующих значений:

при использовании монохромного битового образа массив bmiColors имеет два элемента. Каждому элементу изображения соответствует один бит в массиве битового образа. При нулевом значении этого бита для вывода элемента изображения используется цвет, определенный в нулевом элементе массива bmiColors. В противном случае для задания цвета используется первый элемент данного массива;
если битовый образ использует не более 16 цветов, то массив bmiColors может содержать до 16 элементов. Каждому элементу изображения в этом случае соответствует 4-битовый индекс в таблице цветов. Например, если первый байт массива битового образа содержит значение 0x1F, то в нем содержится информация о цвете двух элементов изображения. Цвет первого из них определяется первым элементом массива цветов, а цвет второго - пятнадцатым;
если битовый образ использует не более 256 цветов, то массив bmiColors может содержать до 256 элементов. В этом случае каждому из элементов изображения будет соответствовать свой байт в массиве битового образа;
если битовый образ использует не более 216 цветов, то переменная biCompression объекта структуры BITMAPINFOHEADER может иметь значение BI_BITFIELDS. В этом случае элемент массива bmiColors содержит три маски для красного, зеленого и синего цветов соответственно, каждая из которых имеет формат двойного слова (DWORD). Биты в масках должны располагаться смежно и не перекрываться с битами других масок. При этом некоторые биты могут быть не использованы ни в одной из масок. Каждому из элементов изображения соответствует отдельное слово в массиве битового образа;
если битовый образ использует не более 224 цветов и переменная bmiColors имеет нулевое значение, то каждые 3 байта в массиве битового образа представляют собой относительную интенсивность синего, зеленого и красного цветов изображения;
если битовый образ использует не более 232 цветов, то переменная biCompression объекта структуры BITMAPINFOHEADER может иметь значение BI_BITFIELDS. В этом случае элемент массива bmiColors содержит три маски для красного, зеленого и синего цветов соответственно, каждая из которых имеет формат двойного слова (DWORD). Биты в масках должны располагаться смежно и не перекрываться с битами других масок. При этом некоторые биты могут быть не использованы ни в одной из масок. Каждому из элементов изображения соответствует двойное слово (DWORD) в массиве битового образа.

Переменная biClrUsed объекта структуры BITMAPINFOHEADER определяет число используемых индексов в таблице цветов битового образа. Если переменная biClrUsed имеет нулевое значение, то битовый образ использует максимальное количество цветов, определяемое значением переменной biBitCount. Цвета в массиве bmiColors должны располагаться в порядке их важности. Вместо цветов формата RGB в массиве bmiColors могут быть указаны 16-разрядные индексы цветов в текущей реализованной логической палитре. В этом случае при вызове функций, работающих с аппаратно-независимыми битовыми образами, в аргументе iUsage следует передавать значение DIB_PAL_COLORS. Если битовый образ упакован (то есть, если массив битового образа следует за объектом структуры BITMAPINFO и для обращения к нему используется один указатель), переменная biClrUsed при установке флага DIB_PAL_COLORS должна иметь четное значение, чтобы массив аппаратно-независимого битового образа был бы выровнен по границе двойного слова. Переменная bmiColors не должна содержать индексы палитры, если данный битовый образ предполагается сохранить в файле или передать другому приложению. Если приложение не может обеспечить полный контроль за используемой палитрой, таблица цветов битового образа должна содержать только значения цветов в формате RGB. Для доступа к переменной bmiColors объекта структуры BITMAPINFO может быть использована следующая конструкция:

pColor = ((LPSTR)pBitmapInfo + (WORD)(pBitmapInfo->bmiHeader.biSize));

Описание данной структуры содержится в файле заголовка wingdi.h.
BITMAPINFOHEADER

typedef struct tagBITMAPINFOHEADER { // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;

Переменные

biSize - содержит размер структуры в байтах.
biWidth - содержит ширину битового образа в элементах изображения.
В Windows 98, Windows NT 5.0 и более поздних версиях: если переменная biCompression имеет значение BI_JPEG, то переменная biWidth содержит ширину декомпрессированного файла формата JPEG.
biHeight - содержит высоту битового образа в элементах изображения. Если переменная biHeight содержит положительное значение, то битовый образ строится снизу вверх и его нулевая точка расположена в левом нижнем углу. Если переменнаяbiHeight содержит отрицательное значение, то битовый образ строится сверху вниз и его нулевая точка расположена в левом верхнем углу.
Если переменная biHeight содержит отрицательное значение, то переменная biCompression может принимать значения или BI_RGB или BI_BITFIELDS, поскольку данный битовый образ не сжимается.
В Windows 98, Windows NT 5.0 и более поздних версиях: Если переменная biCompression имеет значение BI_JPEG, то переменная biWidth содержит высоту декомпрессированного файла формата JPEG.
biPlanes - содержит число битовых плоскостей в используемом устройстве. Данная переменная всегда должна содержать значение 1.
biBitCount - содержит число бит, используемых для кодирования одного элемента изображения. Эта величина определяет максимальное число цветов в палитре битового образа. Может принимать следующие значения.
0 - может быть установлено только в Windows 98, Windows NT 5.0 и более поздних версиях. Число бит на элемент изображения определяется форматом JPEG.
1 - выводится монохромный битовый образ. Массив образа bmiColors имеет два элемента. Каждому элементу изображения соответствует один бит в массиве битового образа. При нулевом значении этого бита для вывода элемента изображения используется цвет, определенный в нулевом элементе массива bmiColors. В противном случае для задания цвета используется первый элемент данного массива.
4 - битовый образ использует не более 16 цветов. Массив bmiColors может содержать до 16 элементов. Каждому элементу изображения в этом случае соответствует 4-битовый индекс в таблице цветов. Например, если первый байт массива битового образа содержит значение 0x1F, то в нем содержится информация о цвете двух элементов изображения. Цвет первого из них определяется первым элементом массива цветов, а цвет второго - пятнадцатым.
8 - битовый образ использует не более 256 цветов. Массив bmiColors может содержать до 256 элементов. В этом случае каждому из элементов изображения будет соответствовать свой байт в массиве битового образа.
16 - битовый образ использует не более 216 цветов. Если переменная biCompression данного объекта структуры имеет значение BI_RGB, то переменная bmiColors имеет нулевое значение. В данном случае каждому элементу изображения битового образа соответствует одно слово (WORD) его массива. Для представления относительной интенсивности красного, зеленого и синего цветов используется по 5 бит на каждый из цветов. Значение интенсивности синего цвета помещается в младшие 5 бит. Затем следуют значения интенсивности зеленого и красного цветов. Старший бит слова не используется. Массив bmiColors используется для оптимизации цветов на устройствах, использующих палитры и должен иметь размерность, равную значению переменной biClrUsed данного объекта структуры.

Если переменная biCompression имеет значение BI_BITFIELDS, то массив bmiColors объекта структуры BITMAPINFO содержит три маски для красного, зеленого и синего цветов соответственно, каждая из которых имеет формат двойного слова (DWORD). Каждому из элементов изображения соответствует отдельное слово в массиве битового образа. В Windows NT добавляется требование того, чтобы биты в масках располагались смежно и не перекрывались бы с битами других масок. При этом некоторые биты могут быть не использованы ни в одной из масок. В Windows 95 и Windows 98 в том случае, если переменная biCompression имеет значение BI_BITFIELDS, могут использоваться только перечисленные ниже 16-разрядные битовые маски: маска 5-5-5, в которой синий цвет имеет маску 0x001F, зеленый - 0x03E0 и красный - 0x7C00; и маска 5-6-5, , в которой синий цвет имеет маску 0x001F, зеленый - 0x07E0 и красный - 0xF80.

24 - битовый образ использует не более 224 цветов и переменная bmiColors имеет нулевое значение. Каждые 3 байта в массиве битового образа представляют собой относительную интенсивность синего, зеленого и красного цветов изображения. Массив bmiColors используется для оптимизации цветов на устройствах, использующих палитры и должен иметь размерность, равную значению переменной biClrUsed данного объекта структуры.
32 - битовый образ использует не более 232 цветов. Если переменная biCompression данного объекта структуры имеет значение BI_RGB, то переменная bmiColors имеет нулевое значение. В данном случае каждому элементу изображения битового образа соответствует одно двойное слово (DWORD) его массива, содержащее информацию об интенсивности красного, зеленого и синего цветов. Старший байт двойного слова не используется. Массив bmiColors используется для оптимизации цветов на устройствах, использующих палитры и должен иметь размерность, равную значению переменной biClrUsed данного объекта структуры.
Переменная biCompression объекта структуры BITMAPINFOHEADER может иметь значение BI_BITFIELDS. В этом случае элемент массива bmiColors содержит три маски для красного, зеленого и синего цветов соответственно, каждая из которых имеет формат двойного слова (DWORD). Каждому из элементов изображения соответствует двойное слово (DWORD) в массиве битового образа.
В Windows NT добавляется требование того, чтобы биты в масках располагались смежно и не перекрывались бы с битами других масок. При этом некоторые биты могут быть не использованы ни в одной из масок.
В Windows 95 и Windows 98 в том случае, если переменная biCompression имеет значение BI_BITFIELDS, может использоваться только приведенная ниже 32-разрядная битовая маска: синий цвет имеет маску 0x000000FF, зеленый - 0x0000FF00 и красный - 0x00FF0000.
biCompression - определяет тип сжатия информации в битовом образе, строящемся снизу вверх (битовый образ, строящийся сверху вниз, не может сжиматься). Определены следующие значения:
BI_RGB - сжатие отсутствует;
BI_RLE8 - кодирование потоковым кодом (RLE) для битовых образов, использующих 8-битовое кодирование элемента изображения. Код состоит из двух байт, первый из которых содержит счетчик повторов, а второй - повторяемый индекс цвета;
BI_RLE4 - кодирование потоковым кодом (RLE) для битовых образов, использующих 4-битовое кодирование элемента изображения. Код состоит из двух байт, первый из которых содержит счетчик повторов, а второй - два повторяемых индекса цвета;
BI_BITFIELDS - указывает на то, что битовый образ не сжимался, а таблица цветов содержит три маски формата DWORD, определяющие интенсивность красного, зеленого и синего цветов для каждого элемента изображения;
BI_JPEG - может устанавливаться в Windows 98, Windows NT 5.0 и более поздних версиях. Указывает на то, что битовый образ имеет формат JPEG.
biSizeImage - содержит размер изображения в байтах. При работе с битовыми образами формата BI_RGB может принимать нулевое значение.
В Windows 98, Windows NT 5.0 и более поздних версиях: если переменная biCompression имеет значение BI_JPEG, то переменная biSizeImage содержит размер буфера изображения JPEG.
biXPelsPerMeter - содержит горизонтальное разрешение используемого устройства отображения, измеряемое в элементах изображения на метр. Приложение может использовать эту величину для выбора из группы ресурсов битового образа, наиболее соответствующего характеристикам используемого устройства.
biYPelsPerMeter - содержит вертикальное разрешение используемого устройства отображения, измеряемое в элементах изображения на метр.
biClrUsed - определяет число индексов в таблице цветов, используемых данным битовым образом. Если эта переменная имеет нулевое значение, то битовый образ использует максимальное число цветов, определяемое значением переменнойbiBitCount и режимом компрессии, определяемым переменной biCompression.
Если переменная biClrUsed имеет ненулевое значение, а значение переменной biBitCount меньше 16, то переменная biClrUsed определяет истинное число цветов, используемое графическим устройством или драйвером. Если значение переменнойbiBitCount больше или равно 16, то значение переменной biClrUsed определяет размер таблицы цветов, используемый для оптимизации работы с системными палитрами. Если значение переменной biBitCount равно 16 или 32, то оптимальная цветовая палитра помещается непосредственно за тремя масками формата DWORD.
Если битовый образ упакован (то есть, если массив битового образа следует за объектом структуры BITMAPINFO и для обращения к нему используется один указатель), переменная biClrUsed должна иметь нулевое значение или содержать истинный размер таблицы цветов.
biClrImportant - определяет число индексов в таблице цветов, необходимое для вывода битового образа. Если эта переменная имеет нулевое значение, для вывода битового образа необходимы все цвета.

Описание
Объект структуры BITMAPINFOHEADER содержит информацию о размере и формате цветов аппаратно-независимого битового образа (DIB). Приложения, разработанные для операционных систем Windows NT 4.0 и Windows 95, могут использовать структуру BITMAPV4HEADER, а приложения, разработанные для операционных систем Windows NT 5.0 и Windows 98, могут использовать структуру BITMAPV5HEADER, предоставляющую дополнительные возможности. Объект структуры BITMAPINFO, включающий в себя объект структуры BITMAPINFOHEADER и таблицу цветов, содержит исчерпывающую информацию по размерам и цветам аппаратно-независимого битового образа. В Windows 98, Windows NT 5.0 и более поздних версиях структураBITMAPINFOHEADER расширена таким образом, чтобы позволить передавать битовый образ в формате JPEG функции StretchDIBBits. Описание данной структуры содержится в файле заголовка wingdi.h.
CHARFORMAT2

typedef struct _charformat2 {
UINT cbSize;
DWORD dwMask;
DWORD dwEffects;
LONG yHeight;
LONG yOffset;
COLORREF crTextColor;
BYTE bCharSet;
BYTE bPitchAndFamily;
TCHAR szFaceName [LF_FACESIZE];
WORD wWeight;
SHORT sSpacing;
COLORREF crBackColor;
LCID lcid;
DWORD dwReserved;
SHORT sStyle;
WORD wKerning;
BYTE bUnderlineType;
BYTE bAnimation;
BYTE bRevAuthor;
BYTE bReserved1;
} CHARFORMAT2;

Переменные

cbSize - размер данной структуры в байтах. Должен быть определен до того, как объект данной структуры будет использован в элементе управления "расширенное текстовое поле". Может быть задан равным размеру структуры CHARFORMAT илиCHARFORMAT2. Если переменная cbSize содержит размер объекта структуры CHARFORMAT, то в ней могут использоваться только элементы структуры CHARFORMAT.
dwMask - определяет, какие переменные данной структуры содержат достоверную информацию или должны быть установлены. Эта переменная может быть комбинацией следующих флагов, взятых из двух различных наборов. Первый из них определяет, какие из членов данной структуры содержат корректные значения, а второй - определяет корректные атрибуты переменной dwEffects.
Для определения корректности значений членов данной структуры могут быть установлены следующие флаги:
CFM_ANIMATION - переменная bAnimation содержит достоверную информацию;
CFM_BACKCOLOR - переменная crBackColor содержит достоверную информацию;
CFM_CHARSET - переменная bCharSet содержит достоверную информацию;
CFM_COLOR - переменная crTextColor содержит достоверную информацию, если не установлен флаг CFE_AUTOCOLOR в аргументе dwEffects;
CFM_FACE - переменная szFaceName содержит достоверную информацию;
CFM_KERNING - переменная wKerning содержит достоверную информацию;
CFM_LCID - переменная lcid содержит достоверную информацию;
CFM_OFFSET - переменная yOffset содержит достоверную информацию;
CFM_REVAUTHOR - переменная bRevAuthor содержит достоверную информацию;
CFM_SIZE - переменная yHeight содержит достоверную информацию;
CFM_SPACING - переменная sSpacing содержит достоверную информацию;
CFM_STYLE - переменная sStyle содержит достоверную информацию;
CFM_UNDERLINETYPE - переменная bUnderlineType содержит достоверную информацию;
CFM_WEIGHT - переменная wWeight содержит достоверную информацию.
Для определения корректных атрибутов переменной dwEffects могут быть установлены следующие флаги.
CFM_ALLCAPS - используется значение флага CFE_BOLD.
CFM_BOLD - используется значение флага CFE_BOLD.
CFM_COLOR - используется значение флага CFE_AUTOCOLOR или переменной crTextColor.
CFM_DISABLED - используется значение флага CFE_DISABLED.
CFM_EMBOSS - используется значение флага CFE_EMBOSS.
CFM_HIDDEN - используется значение флага CFE_HIDDEN.
CFM_IMPRINT - используется значение флага CFE_IMPRINT.
CFM_ITALIC - используется значение флага CFE_ITALIC.
CFM_LINK - используется значение флага CFM_LINK.
CFM_OUTLINE - используется значение флага CFM_OUTLINE.
CFM_PROTECTED - используется значение флага CFE_PROTECTED.
CFM_REVISED - используется значение флага CFE_REVISED.
CFM_SHADOW - используется значение флага CFE_SHADOW.
CFM_SMALLCAPS - используется значение флага CFE_SMALLCAPS.
CFM_STRIKEOUT - используется значение флага CFE_STRIKEOUT.
CFM_SUBSCRIPT - используются значения флагов CFE_SUBSCRIPT и CFE_SUPERSCRIPT.
CFM_SUPERSCRIPT - используются значения флагов CFE_SUBSCRIPT и CFE_SUPERSCRIPT.
CFM_UNDERLINE - используется значение флага CFE_UNDERLINE.
dwEffects - содержит список операций форматирования. Некоторые флаги включены только для обеспечения совместимости с интерфейсом Text Object Model (Модель текстовых объектов или TOM). Элемент управления расширенное текстовое поле сохранит установленные значения, но не будет использовать их при выводе текста.
Может представлять собой комбинацию следующих значений.
CFE_ALLCAPS - для вывода текста будут использоваться только заглавные буквы. Это значение не влияет на вывод текста в элементе управления. Используется только в версиях, предшествующих версии Rich Edit 3.0.
CFE_AUTOCOLOR - цвет текста принимает значение, возвращаемое функцией GetSysColor (COLOR_WINDOWTEXT). Если этот флаг установлен, значение переменной crTextColor игнорируется.
CFE_BOLD - текст отображается жирным шрифтом.
CFE_DELETED - текст помечается как уничтоженный.
CFE_EMBOSS - текст рельефно выделяется. Это значение не влияет на вывод текста в элементе управления.
CFE_HIDDEN - в Rich Edit 3.0 и более поздних версиях текст не выводится.
CFE_IMPRINT - текст отображается как впечатанный. Это значение не влияет на вывод текста в элементе управления.
CFE_ITALIC - текст отображается курсивом.
CFE_LINK - элемент управления расширенное текстовое поле посылает извещение EN_LINK при получении сообщений мыши о нахождении ее указателя на тексте, для которого установлен данный флаг.
CFE_OUTLINE - текст выводится контурными буквами. Это значение не влияет на вывод текста в элементе управления.
CFE_PROTECTED - устанавливается запрет на внесение изменений в параметры шрифта. При попытке внесения в него изменений посылается сообщение EN_PROTECTED.
CFE_REVISION - текст отмечается как измененный.
CFE_SHADOW - текст выводится оттененными знаками. Это значение не влияет на вывод текста в элементе управления.
CFE_SMALLCAPS - текст выводится маленькими заглавными буквами. Это значение не влияет на вывод текста в элементе управления.
CFE_STRIKEOUT - производится зачеркивание текста.
CFE_SUBSCRIPT - выводится подстрочный текст. Флаги CFE_SUBSCRIPT и CFE_SUPERSCRIPT несовместимы. В обоих случаях в элементе управления вычисляется смещение и используется шрифт меньшего размера. Вместо установки этих флагов пользователь может использовать переменные данной структуры yHeight и yOffset для непосредственного задания размера шрифта и смещения надстрочного и подстрочного текста.
CFE_SUPERSCRIPT - выводится надстрочный текст.
CFE_UNDERLINE - производится подчеркивание текста.
yHeight - определяет высоту символов в пиках. Пика равняется 1/1440 дюйма или 1/20 точки принтера. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_SIZE.
yOffset - смещение символа относительно базовой линии, заданное в пиках. Если эта величина имеет положительное значение, то символ является верхним индексом, если негативное - нижним индексом. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_OFFSET.
crTextColor - определяет цвет текста. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_COLOR. Эта величина игнорируется, если определена операция форматирования CFE_AUTOCOLOR. Для заполнения объектов структуры COLORREF может использоваться макрос RGB.
bCharSet - определяет используемый набор символов. Этот аргумент может принимать те же значения, что и переменная lfCharSet в структуре LOGFONT. Для использования этой переменной в перемененной dwMask должен быть установлен флагCFM_CHARSET.
bPitchAndFamily - определяет будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит данный шрифт. Этот аргумент может принимать те же значения, что и переменная lfPitchAndFamily в структуре LOGFONT.
szFaceName - текстовая строка, завершающаяся нулем, в которой хранится имя шрифта. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_FACE.
wWeight - определяет начертание шрифта. Этот аргумент может принимать те же значения, что и переменная lfWeight в структуре LOGFONT. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_WEIGHT.
sSpacing - горизонтальное расстояние между символами в пиках. Это значение не влияет на вывод текста в элементе управления. Оно включено для обеспечения совместимости с интерфейсом Text Object Model (TOM). Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_SPACING.
crBackColor - цвет фона. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_BACKCOLOR. Для заполнения объектов структуры COLORREF может использоваться макрос RGB.
lcid - 32-разрядный локальный идентификатор, младшее слово которого содержит идентификатор языка, а старшее слово - идентификатор сортировки. Часть старшего слова данного идентификатора зарезервирована. Это значение не влияет на вывод текста в элементе управления расширенное текстовое поле, но оно может использоваться при проверке правописания и грамматики. Для создания значения LCID может использоваться макрос MAKELCID. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_LCID.
dwReserved - зарезервирована, должна иметь нулевое значение.
sStyle - дескриптор стиля символа. Это значение не влияет на вывод текста в элементе управления. Оно включено для обеспечения совместимости с интерфейсом Text Object Model (TOM). Для использования этой переменной в перемененной dwMaskдолжен быть установлен флаг CFM_STYLE.
wKerning - размер шрифта (yHeight), начиная с которого апроши уменьшаются. Это значение не влияет на вывод текста в элементе управления. Оно включено для обеспечения совместимости с интерфейсом Text Object Model (TOM). Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_KERNING.
bUnderlineType - определяет тип подчеркивания. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_UNDERLINETYPE. Может принимать одно из следующих значений:
CFU_CF1UNDERLINE - использует тот же стиль подчеркивания. что и CHARFORMAT;
CFU_UNDERLINE - подчеркивание сплошной линией;
CFU_UNDERLINEDOTTED - подчеркивание пунктирной линией. В версиях, предшествующих Rich Edit 3.0, текст подчеркивается сплошной линией;
CFU_UNDERLINEDOUBLE - подчеркивание двойной линией. В расширенном текстовом поле будет произведено подчеркивание сплошной линией;
CFU_UNDERLINENONE - подчеркивание отсутствует. Устанавливается по умолчанию;
CFU_UNDERLINEWORD - подчеркиваются только слова. В расширенном текстовом поле будет произведено подчеркивание всего текста сплошной линией.
bAnimation - тип анимации текста. Это значение не влияет на вывод текста в элементе управления. Оно включено для обеспечения совместимости с интерфейсом Text Object Model (TOM). Для использования этой переменной в перемененной dwMaskдолжен быть установлен флаг CFM_ANIMATION.
bRevAuthor - индекс, идентифицирующий автора, вносящего изменения. В расширенном текстовом поле для различных индексов авторов используются различные цвета текста. Для использования этой переменной в перемененной dwMask должен быть установлен флаг CFM_REVAUTHOR.
bReserved1 - зарезервирована, должна иметь нулевое значение.

Описание
Структура CHARFORMAT2 содержит информацию о форматировании символов в расширенном текстовом поле. Эта структура является расширением структуры CHARFORMAT для элемента управления Rich Edit 2.0. Rich Edit 2.0 позволяет использовать любую из этих структур в сообщениях EM_GETCHARFORMAT и EM_SETCHARFORMAT. Описание данной структуры содержится в файле заголовка Richedit.h.
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 для инициализации стандартного диалогового окна Шрифт. После того, как пользователь закроет это диалоговое окно, в данную структуру будет помещена информация об установках элементов управления данного диалогового окна.
HELPINFO

typedef struct tagHELPINFO
{
UINT cbSize;
int iContextType
int iCtrlId;
HANDLE hItemHandle;
DWORD dwContextId;
POINT MousePos;
} HELPINFO, FAR *LPHELPINFO;

Переменные

cbSize - размер структуры в байтах.
iContextType - определяет тип контекста, для которого запрашивается справка. Данный аргумент может принимать одно из следующих значений:
HELPINFO_MENUITEM - справка по команде меню;
HELPINFO_WINDOW - справка по элементу управления или окну.
iCtrlId - если аргумент iContextType имеет значение HELPINFO_WINDOW, то в данном аргументе содержится идентификатор окна или элемента управления. Если аргумент iContextType имеет значение HELPINFO_MENUITEM, то в данном аргументе содержится идентификатор команды меню.
hItemHandle - если аргумент iContextType имеет значение HELPINFO_WINDOW, то в данном аргументе содержится идентификатор дочернего окна или элемента управления. Если аргумент iContextType имеет значение HELPINFO_MENUITEM, то в данном аргументе содержится идентификатор связанного меню.
dwContextId - контекстный идентификатор окна или элемента управления.
MousePos - объект структуры POINT, содержащий экранные координаты курсора мыши. Эта информация используется при выводе справки на основании текущей позиции курсора мыши.

Описание
Данная структура используется для хранения информации о теме контекстной справки.