BOOL FrameRgn (
HDC hdc , // дескриптор контекста устройства
HRGN hrgn , // дескриптор области, вокруг которой рисуется рамка
HBRUSH hbr , // дескриптор кисти, используемой для рисования рамки
int nWidth , // ширина рамки
int nHeight // высота рамки
);
Параметры
hdc - идентифицирует контекст устройства.
hrgn - идентифицирует область, заключаемую в рамку. Предполагается, что координаты области задаются в логических единицах.
hbr - идентифицирует кисть, используемую для рисования рамки.
nWidth - определяет ширину вертикальных штрихов кисти, в логических единицах.
nHeight - определяет высоту горизонтальных штрихов кисти, в логических единицах.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
См. также
FillRgn, PaintRgn .
GetPolyFillMode
Функция GetPolyFillMode извлекает текущий режим заполнения прямоугольника.
int GetPolyFillMode (
HDC hdc // дескриптор контекста устройства
);
Параметры
hdc - идентифицирует контекст устройства.
Возвращаемые значения
В случае успеха возвращается режим заполнения прямоугольников, который может быть одним из следующих значений:
Значение
Пояснение
ALTERNATE
Попеременный режим. Закрашиваются только те фрагменты внутренней области многоугольника, которые получаются путем соединения линий с нечетными номерами (1, 3, 5 и т. д.). Другие фрагменты внутренней области не закрашиваются.
WINDING
Сквозной. Windows закрашивает все внутренние области.
В случае неудачи возвращается нуль.
См. также
SetPolyFillMode .
GetRegionData
Функция GetRegionData заполняет указанный буфер данными, описывающими область. Эти данные включают в себя размеры прямоугольника, покрывающего область.
DWORD GetRegionData (
HRGN hRgn , // дескриптор области
DWORD dwCount , // размер буфера, содержащего данные области
LPRGNDATA lpRgnData // адрес буфера
);
Параметры
hRgn - идентифицирует область.
dwCount - определяет размер буфера, на который указывает значение параметра lpRgnData , в байтах.
lpRgnData - указывает на структуру типа RGNDATA , которая получает информацию. Если значение этого параметра равно NULL, то возвращаемое значение содержит число байт, необходимых для данных области.
Возвращаемые значения
Если вызов функции завершается успехом и значение dwCount определяет соответствующее количество байт, возвращается 1. Если значение dwCount слишком мало или значение lpRgnData равно NULL, возвращается требуемое количество байт.
В случае неудачи возвращается нуль.
Комментарии
Функция GetRegionData используется в паре с функцией ExtCreateRegion .
См. также
ExtCreateRegion, RGNDATA .
GetRgnBox
Функция GetRgnBox извлекает ограничивающий прямоугольник указанной области.
int GetRgnBox (
HRGN hrgn , // дескриптор области
LPRECT lprc // адрес структуры, которая получает
// ограничивающий прямоугольник
);
Параметры
hrgn - идентифицирует область.
lprc - указывает на структуру типа RECT , которая получает ограничивающий прямоугольник.
Возвращаемые значения
Возвращаемое значение показывает сложность результирующей области и может принимать одно из следующих значений:
Значение
Пояснение
COMPLEXREGION
Область состоит более чем из одного прямоугольника.
ERROR
Произошла ошибка.
NULLREGION
Пустая область.
SIMPLEREGION
Область является одиночным прямоугольником.
Если значение параметра hrgn не идентифицирует действительную область, возвращается нуль.
См. также
RECT .
OffsetRgn
Функция OffsetRgn перемещает область на заданные смещения.
int OffsetRgn (
HRGN hrgn , // дескриптор области
int nXOffset , // смещение вдоль оси x
int nYOffset // смещение вдоль оси y
);
Параметры
hrgn - идентифицирует перемещаемую область.
nXOffset - задает количество логических единиц, на которое область смещается влево или вправо.
nYOffset - задает количество логических единиц, на которое область смещается вверх или вниз.
Возвращаемые значения
Возвращаемое значение определяет сложность новой области. Может принимать одно из следующих значений:
Значение
Пояснение
COMPLEXREGION
Область состоит более чем из одного прямоугольника
ERROR
Произошла ошибка, область не изменена.
NULLREGION
Пустая область
SIMPLEREGION
Область является одиночным прямоугольником
SetPolyFillMode
Функция SetPolyFillMode устанавливает режим заполнения многоугольников для соответствующих функций.
int SetPolyFillMode (
HDC hdc , // дескриптор контекста устройства
int iPolyFillMode // режим заполнения многоугольников
);
Параметры
hdc - идентифицирует контекст устройства.
iPolyFillMode - определяет новый режим заполнения. Может быть одним из следующих значений:
Значение
Пояснение
ALTERNATE
Попеременный режим. Закрашиваются только те фрагменты внутренней области многоугольника, которые получаются путем соединения линий с нечетными номерами (1, 3, 5 и т. д.). Другие фрагменты внутренней области не закрашиваются.
WINDING
Сквозной. Windows закрашивает все внутренние области.
Возвращаемые значения
Возвращается предыдущий режим заполнения многоугольников.
В случае ошибки возвращается нуль.
Комментарии
Вообще, режимы отличаются только в случаях, где должен быть заполнен сложный перекрывающийся многоугольник (например, пятисторонний многоугольник, который образует пяти-лучевую звезду с пятиугольником в центре). В таких случаях, режим ALTERNATE заполняет каждую закрытую область внутри прямоугольника (то есть, лучи звезды), а режим WINDING заполняет все области (то есть, лучи звезды и прямоугольник).
См. также
GetPolyFillMode .
Црифт и текст
CreateFontIndirect
Функция CreateFontIndirect создает логический шрифт, характеристики которого определены в указанной структуре. Впоследствии шрифт может быть выбран в качестве текущего шрифта для любого контекста устройства.
HFONT CreateFontIndirect (
CONST LOGFONT * lplf // указатель на структуру логического шрифта
);
Параметры
lplf - указывает на структуру типа LOGFONT , которая определяет характеристики логического шрифта.
Возвращаемые значения
В случае успеха возвращается дескриптор логического шрифта.
В случае неудачи возвращается нуль.
Комментарии
Функция CreateFontIndirect создает логический шрифт с характеристиками, указанными в структуре типа LOGFONT . Когда шрифт выбирают функцией SelectObject , механизм отображения шрифтов GDI пытается подобрать логическому шрифту существующий физический шрифт. Если попытка подобрать точное соответствие закончилась неудачей, то предоставляется альтернативный шрифт, чьи характеристики удовлетворяют наибольшему числу запрашиваемых характеристик.