Чтение онлайн

ЖАНРЫ

Русский справочник по Win32 API

Сорока Тарас

Шрифт:

SetKeyboardState

Функция SetKeyboardState копирует массив из 256 байт состояний клавиш в таблицу состояния ввода с клавиатуры вызывающего потока. Это та же самая таблица, к которой имеют доступ функции GetKeyboardState и GetKeyState . Изменения, сделанные в этой таблице, не влияют на ввод с клавиатуры для других потоков.

BOOL SetKeyboardState (

LPBYTE lpKeyState // адрес массива с кодами виртуальных клавиш

);

Параметры

lpKeyState

указывает на 256-байтный массив, который содержит состояния клавиш клавиатуры.

Возвращаемые значения

В случае успеха возвращается ненулевое значение.

В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .

Комментарии

Поскольку функция SetKeyboardState изменяет состояние ввода вызывающего потока, но не глобальное состояние ввода системы, приложение не может использовать SetKeyboardState для установки индикаторов NUM LOCK, CAPS LOCK или r SCROLL LOCK на клавиатуре.

См. также

GetAsyncKeyState, GetKeyboardState, GetKeyState, MapVirtualKey .

Области

CombineRgn

Функция CombineRgn объединяет две области и сохраняет результат в третьей. Две области объединяются согласно указанному режиму объединения.

int CombineRgn (

HRGN hrgnDest , // дескриптор результирующей области

HRGN hrgnSrc 1 , // дескриптор исходной области

HRGN hrgnSrc 2 , // дескриптор исходной области

int fnCombineMode // режим объединения областей

);

Параметры

hrgnDestидентифицирует новую область с размерами, определяемыми двумя исходными областями (область должна существовать до вызова функции CombineRgn ).

hrgnSrc 1– идентифицирует первую из двух исходных областей.

hrgnSrc 2– идентифицирует вторую из двух исходных областей.

fnCombineMode– определяет режим объединения двух областей. Может принимать одно из следующих значений:

Значение

Пояснение

RGN_AND

Создается пересечение двух областей.

RGN_COPY

Создается копия области, идентифицируемой значением параметра hrgnSrc 1 .

RGN_DIFF

Объединяются те части области, идентифицируемой значением параметра hrgnSrc 1 , которые не являются частями области, идентифицируемой значением параметра hrgnSrc 2 .

RGN_OR

Создается

объединение двух областей.

RGN_XOR

Создается объединение двух областей, за исключением любых пересекающихся участков.

Возвращаемые значения

Возвращаемое значение показывает сложность результирующей области и может принимать одно из следующих значений:

Значение

Пояснение

COMPLEXREGION

Область состоит более чем из одного прямоугольника

ERROR

Произошла ошибка

NULLREGION

Пустая область

SIMPLEREGION

Область является одиночным прямоугольником

Комментарии

Области могут совпадать друг с другом. Например, значение параметра hrgnSrc 1 может быть равно значению параметра hrgnDest .

См. также

CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn .

CreateEllipticRgn

Функция CreateEllipticRgn создает эллиптическую область.

HRGN CreateEllipticRgn (

int nLeftRect , // x -координата верхнего левого угла

// ограничивающего прямоугольника

int nTopRect , // y - координата верхнего левого угла

// ограничивающего прямоугольника

int nRightRect , // x -координата нижнего правого угла

// ограничивающего прямоугольника

int nBottomRect // y - координата нижнего правого угла

// ограничивающего прямоугольника

);

Параметры

nLeftRect– определяет x -координату верхнего левого угла прямоугольника, ограничивающего эллипс.

nTopRect– определяет y -координату верхнего левого угла прямоугольника, ограничивающего эллипс.

nRightRect– определяет x -координату нижнего правого угла прямоугольника, ограничивающего эллипс.

nBottomRect– определяет y -координату нижнего правого угла прямоугольника, ограничивающего эллипс.

Возвращаемые значения

В случае успеха возвращается дескриптор области.

В случае неудачи возвращается NULL .

Комментарии

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

Поделиться с друзьями: