Выбрать главу

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 пытается подобрать логическому шрифту существующий физический шрифт. Если попытка подобрать точное соответствие закончилась неудачей, то предоставляется альтернативный шрифт, чьи характеристики удовлетворяют наибольшему числу запрашиваемых характеристик.

Когда логический шрифт вам больше не нужен, вызовите для его удаления функцию DeleteObject .

См. также

DeleteObject, LOGFONT, SelectObject .

Сообщения и очереди сообщений

GetQueueStatus

Функция GetQueueStatus возвращает флаги, которые показывают тип сообщений, обнаруженных в очереди сообщений вызывающего потока.

DWORD GetQueueStatus (

UINT flags // флаги состояния очереди

);

Параметры

flags - определяет флаги состояния очереди, указывая типы сообщений для проверки. Может быть комбинацией следующих значений:

Значение

Пояснение

QS_ALLEVENTS

Сообщение ввода, WM_TIMER, WM_PAINT, WM_HOTKEY или помещенное в очередь сообщение.

QS_ALLINPUT

Любое сообщение ввода.

QS_HOTKEY

Сообщение WM_HOTKEY .

QS_INPUT

Сообщение ввода.

QS_KEY

Сообщение WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP или WM_SYSKEYDOWN в очереди.

QS_MOUSE

Сообщение WM_MOUSEMOVE или сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.).

QS_MOUSEBUTTON

Сообщение клавиши мыши ( WM_LBUTTONUP, WM_RBUTTONDOWN и т. п.).

QS_MOUSEMOVE