Русский справочник по Win32 API
Шрифт:
Возвращаемое значение определяет сложность новой области. Может принимать одно из следующих значений:
Значение | Пояснение |
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 , механизм
Когда логический шрифт вам больше не нужен, вызовите для его удаления функцию 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 | Сообщение WM_MOUSEMOVE. |
QS_PAINT | Сообщение WM_PAINT . |
QS_OSTMESSAGE | Помещенное сообщение, отличное от перечисленных выше, находится в очереди. |
QS_ENDMESSAGE | Сообщение, отправленное другим потоком или приложением, находится в очереди. |
QS_TIMER | Сообщение WM_TIMER . |
Возвращаемые значения
Старшее слово показывает типы сообщений, находящихся в очереди. Младшее слово показывает типы сообщений, которые были добавлены в очередь и все еще там находятся с момента последнего вызова функции GetQueueStatus : GetMessage или PeekMessage .
Комментарии
Присутствие флага QS_ в возвращаемом значении не гарантирует, что последующий вызов функции PeekMessage или GetMessage вернет сообщение. PeekMessage или GetMessage выполняют определенную внутреннюю фильтрацию, которая может привести ко внутренней обработке сообщения. По этой причине, возвращаемое функцией GetQueueStatus значение должно быть рассматриваемо только как намек на то, должна ли быть вызвана функция GetMessage или PeekMessage .