Комментарии
Функция DispatchMessageпередает сообщение в очередь сообщений потока, когда в ней нет других сообщений.
См. также
DispatchMessage, SetTimer, TimerProc.
Функция 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объединяет две области и сохраняет результат в третьей. Две области объединяются согласно указанному режиму объединения.
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создает эллиптическую область.
HRGN CreateEllipticRgn(
int nLeftRect , // x -координата верхнего левого угла
// ограничивающего прямоугольника
int nTopRect , // y - координата верхнего левого угла
// ограничивающего прямоугольника
int nRightRect , // x -координата нижнего правого угла
// ограничивающего прямоугольника
int nBottomRect // y - координата нижнего правого угла
// ограничивающего прямоугольника
);
Параметры
nLeftRect - определяет x -координату верхнего левого угла прямоугольника, ограничивающего эллипс.
nTopRect - определяет y -координату верхнего левого угла прямоугольника, ограничивающего эллипс.
nRightRect - определяет x -координату нижнего правого угла прямоугольника, ограничивающего эллипс.
Читать дальше