KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Тарас Сорока - Русский справочник по Win32 API

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Тарас Сорока, "Русский справочник по Win32 API" бесплатно, без регистрации.
Перейти на страницу:

См. также


DispatchMessage, SetTimer, TimerProc .


Ввод с клавиатуры

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 .


Комментарии


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

Координаты ограничивающего прямоугольника задаются в логических единицах.


См. также


CreateEllipticRgnIndirect, DeleteObject, SelectObject .


CreateEllipticRgnIndirect


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


HRGN CreateEllipticRgnIndirect (


CONST RECT * lprc // указатель на структуру, определяющую

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

);


Параметры


lprc - указатель на структуру типа RECT , которая содержит координаты верхнего левого и нижнего правого углов ограничивающего эллипс прямоугольника.


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


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

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


Комментарии


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

Координаты ограничивающего прямоугольника задаются в логических единицах.


См . также


CreateEllipticRgn, DeleteObject, RECT, SelectObject .


CreatePolygonRgn


Функция CreatePolygonRgn создает многоугольную область.


HRGN CreatePolygonRgn (


CONST POINT * lppt , // указатель на массив точек

int cPoints , // число точек в массиве

int fnPolyFillMode // режим заполнения многоугольника

);


Параметры


lppt - указатель на массив структур типа POINT , которые определяют вершины многоугольника. Многоугольник полагается замкнутым. Каждая вершина может быть задана лишь один раз.

cPoints - определяет количество точек в массиве.

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


Значение

Пояснение

ALTERNATE

Попеременный режим. Закрашиваются только те фрагменты внутренней области многоугольника, которые получаются путем соединения линий с нечетными номерами (1, 3, 5 и т. д.). Другие фрагменты внутренней области не закрашиваются.

WINDING

Сквозной. Windows закрашивает все внутренние области.


Для дополнительной информации об этих режимах смотрите описание функции SetPolyFillMode .


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


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

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


См. также


CreatePolyPolygonRgn, DeleteObject, POINT, SelectObject, SetPolyFillMode .


CreatePolyPolygonRgn


Функция CreatePolyPolygonRgn создает область, состоящую из нескольких прямоугольников. Прямоугольники могут перекрывать друг друга.


HRGN CreatePolyPolygonRgn (


CONST POINT * lppt , // указатель на массив точек

CONST INT * lpPolyCounts , // указатель на массив,

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*