См. \local-sources\chap09\09-18.txt
GetKeyState • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция GetKeyState выбирает состояние указанной виртуальной клавиши. Это состояние показывает, нажата ли клавиша, отпущена или переключена в то или иное состояние. Функция GetKeyState обычно используется для проверки состояния переключаемых клавиш: Caps Lock, Scroll Lock и Num Lock. |
||||||||||||||||
Синтаксис |
SHORT GetKeyState( int nVirtKey ) |
||||||||||||||||
Параметры |
|||||||||||||||||
nVirtKey |
int. Код виртуальной клавиши. Полный перечень кодов представлен в табл. 9.3. Если виртуальная клавиша представляет собой букву или цифру (от "А" до "Z", от "а" до "z" или от "0" до "9"), в качестве nVirtKey должно быть установлено значение кода ASCII этого символа. При использовании неанглийской раскладки клавиатуры виртуальные клавиши со значениями в диапазоне кодов ASCII от "А" до "Z" и от "0" до "9" служат для указания большинства символьных клавиш. Например в немецкой раскладке клавиатуры виртуальная клавиша со значением кода ASCII О (OX4F) относится к клавише "о", тогда как клавиша VK_OEM_1 относится к клавише "о с умлаутом" (6). |
||||||||||||||||
Возвращаемое значение |
SHORT. Состояние клавиши закодировано в двух битах. Если старший бит равен 1, клавиша нажата; в ином случае, она отпущена. Если младший бит равен 1, клавиша переключена. Клавиша типа Caps Lock переключена, если она переведена во включенное состояние. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetlnputState, GetAsyncKeyState |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WM_KEYUP |
|||||||||||||||||
Пример |
Следующий пример аналогичен примеру, приведенному в описании функции GetKeyNameText, за исключением того, что выполняется проверка состояния клавиши Caps Lock. Если эта клавиша включена, ее имя отображается в верхнем регистре; в ином случае ее имя отображается в нижнем регистре. |
||||||||||||||||
См. \local-sources\chap09\09-19.txt |
|||||||||||||||||
GetLastlnputlnfo • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция GetLastlnputlnfo выбирает время последнего события ввода. |
||||||||||||||||
Синтаксис |
BOOL GetLastInputInfo( PLASTINPUTINFO plii ) |
||||||||||||||||
Параметры |
|||||||||||||||||
рШ |
PLASTINPUTINFO. Указатель на структуру LASTINPUTINFO, которая должна принять значение времени последнего события ввода. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение отлично от нуля; в ином случае возвращаемое значение — нуль. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
Определение LASTINPUTINFO |
|||||||||||||||||
typedef struct tagLASTINPUTINFO < UINT cbSize; DWORD dwTime ; } LASTINPUTINFO , *PLASTINPUTINFO; |
|||||||||||||||||
Члены |
|||||||||||||||||
cbSize |
UINT. Размер этой структуры в байтах. |
||||||||||||||||
dwlime |
DWORD. Число тактов системных часов на момент получения последнего события ввода. |
||||||||||||||||
GetMouseMovePointsEx • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция GetMouseMovePointsEx выбирает хронологию событий, связанных с изменением координат мыши или пера, которая может охватывать до 64 событий. |
||||||||||||||||
Синтаксис |
Система хранит последние 64 значения координат курсора мыши и связанные с ними отметки времени. Если приложение передает значение координат курсора мыши в функцию GetMouseMovePointsEx и это значение существует в хронологии системы, функция выбирает указанное число координат из хронологии системы. В этой функции можно также передать отметку времени. int GetMouseMovePointsEx( UINT cbSize, LPMOUSEMOVEPOINT Ippt, LPMOUSEMOVEPOINT IpptBuf, int nBufPoints, DWORD dwResolution ) |
||||||||||||||||
Параметры cbSize |
UINT. Размер структуры MOUSEMOVEPOINT в байтах. |
||||||||||||||||
Ippt |
LPMOUSEMOVEPOINT. Указатель на структуру MOUSEMOVEPOINT, которая содержит допустимые координаты курсора мыши и необязательную отметку времени. Функция GetMouseMovePointEx ищет эту точку в хронологии координат мыши. Если эта точка будет найдена, функция возвращает указанное число координат nBufPoints до указанной точки вклю-. чительно. |
||||||||||||||||
IpptBuf |
LPMOUSEMOVEPOINT. Указатель на буфер, который должен принять данные о точках прохождения курсора мыши, представленные в виде структур MOUSEMOVEPOINT. Этот буфер должен иметь длину не меньше cbSize*nBuffPoints. |
||||||||||||||||
nBufPoints |
int. Число точек, данные о прохождении которых должны быть выбраны. |
||||||||||||||||
dwResolution |
DWORD. Необходимая разрешающая способность. Если этот параметр установлен равным GMMP_USE_DISPLAY_POINTS, для точек используется разрешающая способность дисплея. Если этот параметр установлен равным GMMP_USE_HIGH_RESOLUTION_POINTS, используются точ ки с высоким разрешением. Координаты х и у точек могут находиться в диапазоне от нуля до OxFFFF. |
||||||||||||||||
Возвращаемое значение |
int. В случае успешного выполнения, возвращаемое значение — число точек в буфере; в ином случае функция возвращает значение -1. Если функция GetLastError возвращает значение GMMP_ERR_POINT_NOT_FOUND, это значит, что точку не удалось найти или она больше не находится в буфере системы. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
Определение MOUSEMOVEPOINT |
|||||||||||||||||
typedef struct tagMOUSEMOVEPOINT { int x; int у ; DWORD time ; ULONG PTR dwExtralnfo; } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT; |
|||||||||||||||||
Члены |
|||||||||||||||||
X |
int. Координата х курсора мыши. |
||||||||||||||||
У |
int. Координата у курсора мыши. |
||||||||||||||||
time |
DWORD. Отметка времени, связанная с координатами курсора мыши. |
||||||||||||||||
dwExtralnfo |
ULONG_PTR. Дополнительная информация, связанная с координатой. |
||||||||||||||||
HideCaret • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция HideCaret удаляет знак вставки с экрана. Скрытие знака вставки не приводит к уничтожению его текущей формы или к обозначению текущей точки вставки в качестве недействительной. Скрытие знака вставки позволяет пользователю лучше понимать работу приложения, когда он выполняет операции, связанные со смещением фокуса деятельности с клиентской области (при выборе пунктов меню и т.д.), или во время об- |
||||||||||||||||
работки событий WM_PAINT. Как только эти действия выполнены, знак вставки можно снова сделать видимым с помощью функции ShowCaret. Знак вставки является разделяемым между всеми приложениями. Если знак вставки отображается в окне одной программы, другой знак вставки в окне другой работающей программы автоматически исчезает. |
|||||||||||||||||
Синтаксис |
BOOL HideCaret( HWND hwnd ) |
||||||||||||||||
Параметры |
|||||||||||||||||
hwnd |
HWND. Дескриптор окна, которое является владельцем знака вставки. Если этот параметр равен NULL, функция HideCaret ищет текущую задачу для окна, которое является владельцем знака вставки. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
ShowCaret, CreateCaret, DestroyCaret, SetCaretBIinkTime |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_PAINT |
|||||||||||||||||
Пример |
См. пример для функции CreateCaret. |
||||||||||||||||
LoadCursor • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция LoadCursor загружает указанный ресурс курсора из файла выполняемой программы (ЕХЕ) или из динамически загружаемой библиотеки (DLL — dynamic link library), связанной с текущим дескриптором экземпляра. Если курсор загружен в составе определения класса окна, то курсор мыши, находясь в пределах клиентской области окна, будет принимать форму загруженного курсора. Если требуется в разное время иметь разные формы курсора в клиентской области окна, то форма курсора класса окна должна быть установлена в NULL, а курсор должен быть указан путем вызова функции SetCursor при получении каждого сообщения WM_SETCURSOR. |
||||||||||||||||
Синтаксис |
HCURSOR LoadCursor( HINSTANCE hinst, LPCTSTR IpszCursor ) |
||||||||||||||||
Параметры |
|||||||||||||||||
hinst |
HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит курсор, подлежащий загрузке. Устанавливается в NULL, если должна быть загружена предопределенная форма курсора. |
||||||||||||||||
IpszCursor |
LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя ресурса курсора, подлежащего загрузке. В качестве этого параметра может быть также указан идентификатор ресурса, созданный с помощью макрокоманды MAKEINTRESOURCE. Чтобы использовать один из предопределенных курсоров Win32, приложение должно установить параметр hinst в NULL, а параметр IpszCursor — в одно из значений, перечисленных в табл. 9.11. |
||||||||||||||||
Возвращаемое значение |
HCURSOR. Дескриптор вновь загруженного курсора. Если курсор не мог быть загружен, возвращаемое значение — NULL. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
Таблица 9.11. Предопределенные идентификаторы курсора |
|||||||||||||||||
Значение |
Описание |
||||||||||||||||
IDC_APPSTARTING |
Стандартная стрелка и малые песочные часы |
||||||||||||||||
IDC_ARROW |
Стандартная стрелка |
||||||||||||||||
IDC_CROSS |
Перекрестие |
||||||||||||||||
IDC_HAND |
(Windows 2000) Рука |
||||||||||||||||
IDC_HELP |
Стрелка и вопросительный знак |
||||||||||||||||
IDCJBEAM |
Текстовый двутавр |
||||||||||||||||
IDCJCON |
Пустая пиктограмма |
||||||||||||||||
IDC_NO |
Перечеркнутый кружок |
||||||||||||||||
IDC_SIZE |
Четырехконечная стрелка |
||||||||||||||||
IDC_SIZEALL |
То же, что и IDC_SIZE |
||||||||||||||||
IDC_SIZENESW |
Двухконечная стрелка, указывающая на северо-восток и юго-запад |
||||||||||||||||
IDC_SIZENS |
Двухконечная стрелка, указывающая на север и юг |
||||||||||||||||
IDC_SIZENWSE |
Двухконечная стрелка, указывающая на северо-запад и юго-восток |
||||||||||||||||
IDC_SIZEWE |
Двухконечная стрелка, указывающая на запад и восток |
||||||||||||||||
IDC_UPARROW |
Вертикальная стрелка |
||||||||||||||||
IDC_WAIT |
Песочные часы |
||||||||||||||||
См. также |
SetCursor, CreateCursor |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_MOUSEMOVE, WMJSETCURSOR |
|||||||||||||||||
Пример |
В следующем примере показано наиболее распространенное применение функции LoadCursor в приложении. Когда приложение начинает работу и регистрирует главный класс окна, функция LoadCursor обычно используется для установки элемента hCursor структуры WNDCLASS. |
||||||||||||||||
См. \local-sources\cbap09\09-20.txt |
|||||||||||||||||
LoadCursorFromFile • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция LoadCursorFromFile создает курсор на основе данных, содержащихся в файле. Файл должен быть указан по имени или по идентификатору системного курсора. Функция возвращает дескриптор вновь созданного курсора. Файлы, содержащие данные курсора, должны быть представлены в формате курсора (.CUR) или анимационного курсора (.ANI). |
||||||||||||||||
Синтаксис |
HCURSOR LoadCursorFromFile( LPCTSTR IpszFilename ) |
||||||||||||||||
Параметры |
|||||||||||||||||
IpszFilename |
LPCTSTR. Источник данных, которые должен использоваться для создания курсора. Если старшее слово отлично от нуля, это — указатель на строку, которая является полностью квалифицированным именем файла, содержащего данные курсора. Если старшее слово равно нулю, младшее слово — системный идентификатор курсора. Перечень системных идентификаторов курсора приведен в табл. 9.12. |
||||||||||||||||
Таблица 9. 12. Системные |
идентификаторы курсора |
||||||||||||||||
Илентификатор курсора |
Имя курсора |
||||||||||||||||
OCR_APPSTARTING |
AppStarting |
||||||||||||||||
OCR_NORMAL |
Arrow (Стрелка) |
||||||||||||||||
OCR_CROSS |
Crosshair (Перекрестие) |
||||||||||||||||
OCR_HAND |
Hand (Рука) |
||||||||||||||||
OCR_HELP |
Help (Справка) |
||||||||||||||||
OCRJBEAM |
Ibeam (Двутавр) |
||||||||||||||||
OCRJCON |
Icon (Пиктограмма) |
||||||||||||||||
OCR_NO |
No (Нет) |
||||||||||||||||
OCR_SIZE |
Size (Размер) |
||||||||||||||||
OCR_SIZEALL |
SizeAII (Общий размер) |
||||||||||||||||
OCR_SIZENESW |
SizeNESW |
||||||||||||||||
OCR_SIZENS |
SizeNS |
||||||||||||||||
OCR_SIZENWSE |
SizeNWSE |
||||||||||||||||
OCR_SIZEWE |
SizeWE |
||||||||||||||||
OCR_UP |
UpArrow |
||||||||||||||||
OCR_WAIT |
Wait (Ожидание) |
||||||||||||||||
Возвращаемое значение |
HCURSOR Дескриптор вновь загруженного курсора. Возвращаемое значение — NULL, если курсор не мог быть загружен или функция потерпела неудачу. Функция GetLastError возвращает значение ERROR_FILE_NOT_FOUND, если указанный файл не был найден. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
SetCursor, LoadCursor |
||||||||||||||||
LoadKeyboardLayout • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция LoadKeyboardLayout загружает новую раскладку клавиатуры в систему. Для поддержки многоязычных приложений эта функция предоставляет меню языка/раскладки и визуальное обозначение активной раскладки. |
||||||||||||||||
Синтаксис |
HKL LoadKeyboardLayout( LPCTSTR IpszKLName, UINT ufJags ) |
||||||||||||||||
Параметры |
|||||||||||||||||
IpszKLName |
LPCTSTR Указатель на буфер, который содержит имя раскладки клавиатуры. Имя должно быть получено из шестнадцатиричного значения идентификатора языка, соответствующего раскладке. Например, американский диалект английского языка имеет идентификатор языка 0x0409, поэтому основная американо-английская раскладка имеет имя "00000409". Варианты американо-английской раскладки, такие как раскладка Dvorak, получают имена типа "00010409", "00020409" и т.д. Для получения идентификаторов языка может использоваться макрокоманда MAKELANGID. |
||||||||||||||||
uFlags |
UINT. Указывает способ загрузки раскладки клавиатуры. Этот параметр может иметь одно или несколько значений, перечисленных в табл. 9.13, которые объединены с использованием двоичного оператора OR ( ). |
||||||||||||||||
Возвращаемое значение |
HKL. Дескриптор раскладки клавиатуры. Возвращаемое значение — NULL, если раскладка клавиатуры не могла быть загружена. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
Таблица 9.13. Значения параметра uFlags функции LoadKeyfaoardLayout |
|||||||||||||||||
Значение |
Описание |
||||||||||||||||
KLF_ACTIVATE |
Раскладка загружена (если она еще не была загружена) и активизирована. |
||||||||||||||||
KLF_NOTELLSHELL |
(Windows 98) При загрузке новой раскладки исключает возможность получения процедурой перехвата ShellProc кода перехвата HSHELLJ.ANGUAGE. |
||||||||||||||||
KLF_REORDER |
Если установлен флажок KLF_ACTIVATE и раскладка уже загружена, указанная раскладка удаляется из ее позиции в круговом списке загруженных раскладок системы и помещается в начале списка в качестве активной раскладки. |
||||||||||||||||
KLF_REPLACELANG |
Если новая раскладка имеет тот же идентификатор языка, что и текущая, новая раскладка заменяет текущую в качестве раскладки для этого языка. |
||||||||||||||||
KLF_SUBSTITUTE_OK |
Поиск замены для раскладки производится в профиле пользователя (в системном реестре под ключом HKEY_CURRENT_USER \Keyboard Layout\Subsfitutes). Например, если в этом разделе есть значение с именем "00000409, равным "00010409", то загрузка американо-английской раскладки ("00000409") с установленным флажком KLF SUBSTITUTE OK приводит к загрузке американо-английской раскладки Dvorak ("00010409"). |
||||||||||||||||
KLF_SETFORPROCESS |
(Windows 2000) Действителен только в сочетании с флажком KLF ACTIVATE. Активизирует указанный идентификатор региональной установки ввода для всего процесса и посылает сообщение WMJNPUTLANGCHANGE текущей нити. |
||||||||||||||||
См. также |
ActivateKeyboardLayout |
||||||||||||||||
Пример |
В следующем примере, когда пользователь выбирает пункт меню Test!, загружается и активизируется испано-мексиканская раскладка клавиатуры. Если испано-мексиканская раскладка клавиатуры уже активна, при выборе пункта меню Test! активизируется следующая раскладка клавиатуры. |
||||||||||||||||
См. \local-sources\chap09\09-21.txt |
|||||||||||||||||
MapVirtualKey • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция MapVirtualKey выполняет три отдельных операции, в зависимости от установленного значения параметра иМарТуре. Первой из этих операций является преобразование кодов виртуальных клавиш, используемых в сообщениях Windows, в скэн-код OEM компьютера. Во втором режиме выполняется обратное действие; в нем происходит преобразование из скэн-кодов OEM в коды виртуальных клавиш, используемых в Windows. В тре- |
||||||||||||||||
тьем режиме коды виртуальных клавиш преобразуются в значения кода ASCII. Эта функция чаще всего применяется для преобразования кодов виртуальных клавиш, используемых в сообщениях Windows, в значения ASCII, которые могут быть выведены на экран. В приложениях приходится иметь дело с отмеченными скэн-кодами OEM лишь в редких случаях, например, когда необходимо отличать друг от друга левую и правую клавиши Shift (обе они вырабатывают один и тот же код виртуальной клавиши). |
|||||||||||||||||
Синтаксис |
UINT MapVirtuaIKey( UINT uCode, UINT иМарТуре ) \ |
||||||||||||||||
Параметры |
|||||||||||||||||
и Code |
UINT. Код виртуальной клавиши или скэн-код клавиши. Способ интерпретации этого значения зависит от параметра иМарТуре. |
||||||||||||||||
и Map Type |
UINT. Выполняемое преобразование. В качестве этого параметра применяются значения, перечисленные в табл. 9.14. |
||||||||||||||||
Таблица 9. 14. Значения параметра иМарТуре функции MapVirtualKey |
|||||||||||||||||
Значение |
Описание |
||||||||||||||||
0 |
uCode — код виртуальной клавиши. Возвращается скэн-код. Если код виртуальной клавиши не указывает на различие между левой и правой клавишей, возвращается скэн-код левой клавиши. |
||||||||||||||||
1 |
uCode — скэн-код. Возвращается код виртуальной клавиши, который не указывает на различие между левой и правой клавишей. |
||||||||||||||||
2 |
(/Code — код виртуальной клавиши. В младшем слове возвращается значение символа ASCII, не переведенного в верхний регистр. Для указания мертвых клавиш (диакритических знаков) устанавливается старший бит возвращаемого значения. |
||||||||||||||||
3 |
uCode — скэн-код. Возвращается код виртуальной клавиши, который указывает на различие между левой и правой клавишей. |
||||||||||||||||
Возвращаемое значение |
UINT. Скэн-код, код виртуальной клавиши или символьное значение, в зависимости от значений параметров u Code и иМарТуре. Если преобразование не было выполнено, возвращаемое значение — 0. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
OemKeyScan, MapVirtualKeyEx |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WM_KEYUP, WM_CHAR |
|||||||||||||||||
Пример |
В следующем фрагменте кода показаны два случая применения функции MapVirtualKey. При получении сообщения WM_KEYDOWN происходит преобразование кода виртуальной клавиши, содержащегося в параметре wParum. Функция MapVirtualKey преобразует код виртуальной клавиши в скэн-код OEM и в значение кода ASCII. |
||||||||||||||||
См. \local-sources\chap09\09-22.txt |
|||||||||||||||||
MapVirtualKeyEx • Windows 98 «• Windows 2000 |
|||||||||||||||||
Описание |
Функция MapVirtualKeyEx преобразует код виртуальной клавиши в скэн-код или в символьное значение, либо преобразует скэн-код в код вирту- |
||||||||||||||||
альной клавиши. Эта функция преобразует коды с использованием входного языка и физической раскладки клавиатуры, которые обозначены указанным дескриптором раскладки клавиатуры. |
|||||||||||||||||
Синтаксис |
UINT MapVirtualKeyEx( UINT uCode, UINT иМарТуре, HKL dwhkl ) |
||||||||||||||||
Параметры |
|||||||||||||||||
и Code |
UINT. Код виртуальной клавиши или скэн-код клавиши. Способ интерпретации этого значения зависит от параметра иМарТуре. |
||||||||||||||||
иМарТуре |
UINT. Преобразование, которое должно быть выполнено. В качестве этого параметра применяются значения, перечисленные в табл. 9.14. |
||||||||||||||||
dwhkl |
HKL. Раскладка клавиатуры, которая применяется для преобразования данного кода. В качестве этого параметра может применяться любой дескриптор раскладки клавиатуры, возвращенный ранее функцией LoadKey-boardLayout. |
||||||||||||||||
Возвращаемое значение |
UINT. Скэн-код, код виртуальной клавиши или символьное значение, в зависимости от значения uCode и иМарТуре. Если преобразование не было выполнено, возвращаемое значение — 0. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
MapVirtualKey |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WM_KEYUP, WM_CHAR |
|||||||||||||||||
OemKeyScan • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция OemKeyScan отображает коды ASCII OEM от 0 до OxFF в скэн-коды OEM и состояния переключения регистра. Скэн-код OEM является частью параметра IParam, сопровождающего каждое сообщение \VM_KEYDOWN и WMJKEYUP. Функция OemKeyScan применяется при отправке других сообщений Windows, которые моделируют нажатия клавиш. Она может служить эффективным способом обмена информацией между окнами, которые уже имеют логику обработки сообщений, позволяющую принимать ввод с клавиатуры. |
||||||||||||||||
Синтаксис |
DWORD OemKeyScan( WORD wOemChar ) |
||||||||||||||||
Параметры |
|||||||||||||||||
wOemChar |
WORD. Значения ASCII символа OEM. |
||||||||||||||||
Возвращаемое значение |
DWORD. Младшее слово содержит скэн-код данного символа OEM, a старшее — состояние переключения регистра, которое может представлять собой сочетание двоичных флажков, приведенных в табл. 9.15. Если при текущей раскладке клавиатуры данный символ не мог быть выработан нажатием одной клавиши, возвращаемое значение равно OxFFFFFFFF (-1). |
||||||||||||||||
Таблица 9. 15. Двоичныефлажкизначения, возвращаемогофункциейOemKeyScan |
|||||||||||||||||
Бит |
Описание |
||||||||||||||||
1 |
НажаталюбаяклавишаShift. |
||||||||||||||||
2 |
НажаталюбаяклавишаCtrl. |
||||||||||||||||
4 |
НажаталюбаяклавишаAlt. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
VkKeyScan, MapVirtualKey |
||||||||||||||||
Соответствующр |
le сообщения |
||||||||||||||||
WM_KEYDOWN, WM_KEYUP |
|||||||||||||||||
Пример |
В следующем примере показано использование функций VkKeyScan и OemKeyScan для отправки сообщения WM_KEYDOWN. Когда пользователь выбирает пункт меню Test!, сообщение WM_KEYDOWN отправляется в главное окно приложения, имитируя нажатие клавиши А. При получении сообщения WM_KEYDOWN отображается окно сообщения, в котором показано, что была нажата клавиша этого символа. |
||||||||||||||||
См. \local-sources\chap09\09-23.txt |
|||||||||||||||||
ReleaseCapture • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция ReleaseCapture прекращает перехват событий мыши в окне текущей нити и восстанавливает нормальную обработку сообщений мыши. Окно, которое перехватывает события мыши, получает все сообщения мыши, независимо от позиции курсора, за исключением тех случаев, когда щелчки кнопкой мыши происходят во время нахождения активного участка курсора в окне другой нити. |
||||||||||||||||
Синтаксис |
BOOL ReIeaseCapture( VOID ) |
||||||||||||||||
Параметры |
Эта функция не имеет параметров. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
SetCapture, GetCapture |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_MOUSEMOVE |
|||||||||||||||||
Пример |
См. пример для функции GetCapture. |
||||||||||||||||
ScreenToClient • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция ScreenToClient преобразует экранные координаты, которые содержатся в структуре POINT, указанной параметром IpPoint, в клиентские координаты. Эта функция часто используется в сочетании с функцией GetCursorPos для преобразования координат курсора мыши в координаты х, у клиентской области окна. Это обычно выполняется при обработке сообщений WM_MOUSEMOVE во время перетаскивания линий или позиционирования текста в клиентской области. |
||||||||||||||||
Синтаксис |
BOOL ScreenToClient( HWND hWnd, LPPOINT IpPoint ) |
||||||||||||||||
Параметры |
|||||||||||||||||
hWnd |
HWND. Дескриптор окна, клиентская область которого будет использоваться для преобразования. |
||||||||||||||||
IpPoint |
LPPOINT. Указатель на структуру POINT, которая содержит экранные координаты, подлежащие преобразованию. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetCursorPos, ClientToScreen |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WMJMOUSEMOVE, \VM_LBUTTONDOWN, WM_NCMOUSEMOVE |
|||||||||||||||||
Пример |
В следующем примере показано местонахождение курсора в клиентских координатах, когда курсор проходит над неклиентской областью окна. К неклиентской области относятся рамки, заголовок и строки меню. Экранные координаты местонахождения курсора передаются в сообщении WM_NCMOUSEMOVE в качестве параметра IParam. |
||||||||||||||||
См. \local-sources\chap09\09-24.txt |
|||||||||||||||||
SetCapture • Windows 98 • Windows 2000 1 |
|||||||||||||||||
Описание |
Функция SetCapture устанавливает перехват событий мыши для указанного окна, принадлежащего к текущей нити. С момента начала перехвата окном событий мыши весь ввод от мыши направляется в это окно, независимо от того, находится ли курсор в пределах рамок этого окна. Перехватывать события мыши может одновременно только одно окно. Если курсор мыши находится над окном, созданным другой нитью, система направит ввод от мыши в это окно, только если будет нажата кнопка мыши. |
||||||||||||||||
Синтаксис |
HWND SetCapture( HWND hWnd) |
||||||||||||||||
Параметры |
|||||||||||||||||
hWnd |
HWND. Дескриптор окна в текущей нити, которое должно перехватывать события мыши. |
||||||||||||||||
Возвращаемое значение |
HWND. Дескриптор окна, которое до сих пор перехватывало события мыши. Если такое окно не существует, возвращаемое значение — NULL. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
ReleaseCapture, GetCapture |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_MOUSEMOVE, WM_SETFOCUS |
|||||||||||||||||
Пример |
См. пример для функции GetCapture. |
||||||||||||||||
SetCaretBlinkTime • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция SetCaretBlinkTime устанавливает периодичность мерцания знака вставки в миллисекундах. Поскольку знак вставки представляет собой ресурс, разделяемый между всеми приложениями, то изменение периодичности мерцания в одном приложении влияет на периодичность мерцания во всех других программах, работающих одновременно с ним. |
||||||||||||||||
Синтаксис |
BOOL SetCaretBlinkTime( UINT wMSeconds ) |
||||||||||||||||
Параметры |
|||||||||||||||||
wMSeconds |
UINT. Новое значение периода мерцания в миллисекундах. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetCaretBlinkTime |
||||||||||||||||
Пример |
См. пример для функции GetCaretBlinkTime. |
||||||||||||||||
SetCaretPos * Windows 98 Ф Windows 2000 |
|||||||||||||||||
Описание |
Функция SetCaretPos перемещает знак вставки в указанные координаты, Если окно, которое владеет знаком вставки, было создано со стилем класса CS OWNDC, то указанные координаты зависят от режима отображения, связанным с этим окном. Это — основная функция для перемещения знака вставки в клиентской области окна. Окно может владеть одновременно не более чем одним знаком вставки. Для загрузки или построения знака вставки применяется функция CreateCaret. |
||||||||||||||||
Синтаксис |
BOOL SetCaretPos( int nX, int nY) |
||||||||||||||||
Параметры |
|||||||||||||||||
пХ |
int. Новая координата дс знака вставки. |
||||||||||||||||
nY |
int. Новая координата у знака вставки. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
CreateCaret, HideCaret, ShowCaret, DPtoLP |
||||||||||||||||
Пример |
См. пример для функции CreateCaret. |
||||||||||||||||
SetCursor * Windows 98 * Windows 2000 |
|||||||||||||||||
Описание |
Функция SetCursor позволяет изменить форму курсора. Функция SetCursor обычно применяется при обработке сообщений WM_SETCURSOR или WM MOUSEMOVE и работает быстро, если курсор уже установлен, поэтому эту функцию можно неоднократно вызывать для изменения формы курсора без заметного замедления работы программы. Формы курсора вначале должны быть загружены с помощью функции LoadCursor. Применение функции SetCursor в границах окна, имеющего определение курсора, заставляет курсор мерцать. Это связано с тем, что система Windows при отправке сообщений \VM_MOUSEMOVE выполняет прямое и обратное переключение между классом курсора и курсором, загруженным с помощью функции SetCursor. Для предотвращения возникновения этой проблемы класс курсора должен быть установлен в NULL. |
||||||||||||||||
Синтаксис |
HCURSOR SetCursor( HCURSOR hCursor ) |
||||||||||||||||
Параметры |
|||||||||||||||||
A Cursor |
HCURSOR. Дескриптор отображаемого курсора. Для получения этого дескриптора применяется функция LoadCursor. |
||||||||||||||||
Возвращаемое значение |
HCURSOR. Дескриптор предыдущей формы курсора. Если предыдущей формы курсора не было, возвращаемое значение — NULL. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
LoadCursor |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_SETCURSOR, WM_MOUSEMOVE |
|||||||||||||||||
Пример |
См. пример для функции CreateCursor. |
||||||||||||||||
SetCursorPos • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция SetCursorPos перемещает курсор в указанные экранные координаты. Если координаты не находятся в пределах прямоугольника, установленного при последнем вызове функции ClipCursor, система Windows корректирует эти координаты так, чтобы курсор оставался в пределах прямоугольника. Для клавиатурной поддержки перемещений мыши может применяться функция SetCursorPos. Например, курсор можно перемещать с помощью клавиш со стрелками. |
||||||||||||||||
Синтаксис |
BOOL SetCursorPos( int nX, mi nY) |
||||||||||||||||
Параметры |
|||||||||||||||||
пХ |
int. Новая координата х курсора в экранных координатах. |
||||||||||||||||
nY |
int. Новая координата у курсора в экранных координатах. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetCursorPos, ClientToScreen |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_MOUSEMOVE |
|||||||||||||||||
Пример |
Когда пользователь выбирает опцию меню Test!, курсор мыши перемещается в левый верхний угол клиентской области окна. |
||||||||||||||||
См. \local-sources\chap09\09-25.txt |
|||||||||||||||||
SetDoubleClickTime • Windows 98 * Windows 2000 |
|||||||||||||||||
Описание |
Функция SetDoubleClickTime устанавливает время двойного щелчка для мыши. Время двойного щелчка — максимальное время в миллисекундах, которое может пройти между первым и вторым щелчками, чтобы щелчок считался двойным. Новое значение времени двойного щелчка действует только в течение данного сеанса Windows. |
||||||||||||||||
Синтаксис |
BOOL SetDoubIeCIickTime( UINT ulnterval ) |
||||||||||||||||
Параметры |
|||||||||||||||||
ulnterval |
UINT. Время в миллисекундах между первым и вторым щелчками двойного щелчка. Если этот параметр установлен равным 0, Windows использует заданное по умолчанию время двойной щелчка, равное 500 миллисекундам. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetDoubleClickTime |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK, WM_RBUTTONDBLCLK |
|||||||||||||||||
Пример |
См. пример для функции GetDoubleClickTime. |
||||||||||||||||
SetKeyboardState • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция SetKeyboardState копирует 256-байтовый массив состояний клавиш клавиатуры в таблицу состояний ввода с клавиатуры вызывающей нити. Доступ к таблице состояний может быть получен с помощью функций GetKeyboardState и GetKeyState. Изменения, внесенные в эту таблицу, не влияют на ввод с клавиатуры в любой другой нити. Для установки одной из клавиш-переключателей во включенное состояние применяется значение 0x81 в 256-байтовом массиве. Для установки во включенное состояние непереключаемой (обычной) клавиши применяется значение 0x80. Виртуальная клавиша представляет собой индекс элемента в массиве. |
||||||||||||||||
Синтаксис |
BOOL SetKeyboardState( LPBYTE IpbKeyState ) |
||||||||||||||||
Параметры |
|||||||||||||||||
IpbKeyState |
LPBYTE. Указатель на 256-байтовый массив, который содержит данные о состоянии клавиш клавиатуры. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
GetKeyboardState |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WMJKEYUP, WM_CHAR |
|||||||||||||||||
Пример |
В следующем примере клавиша Ctrl устанавливается в нажатое состояние, когда пользователь выбирает пункт меню Test!. Клавиша Ctrl остается в нажатом состоянии до тех пор, пока пользователь физически не нажмет клавишу Ctrl. |
||||||||||||||||
См. \local-sources\chap09\09-26. txt |
|||||||||||||||||
ShowCaret • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция ShowCaret делает знак вставки видимым на экране в текущей позиции знака вставки. Когда знак вставки становится видимым, он автоматически начинает мерцать. Это помогает пользователю в работе, если знаи вставки перед этим был скрыт на время обработки сообщений WM_PAIN1 или на время выполнения операций, которые смещают фокус деятельности с клиентской области (при выборе пунктов меню и т.д.). Когда пользователь возвращается к рабочей области, знак вставки можно снова сделат] видимым с помощью функции ShowCaret. Как уже неоднократно упоминалось, знак вставки разделяется между всеми приложениями. Если зна! вставки отображается в окне одной программы, знак вставки в окне дру' гой программы автоматически исчезает. |
||||||||||||||||
Синтаксис |
BOOL ShowCaret( HWND hwnd ) |
||||||||||||||||
Параметры |
|||||||||||||||||
hwnd |
HWND. Дескриптор окна, которое является владельцем знака вставки. Если этот параметр — NULL, ShowCaret ищет текущую задачу для окна, в котором в последний раз появился знак вставки. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
HideCaret, CreateCaret, DestroyCaret, SetCaretBlinkTime |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_PAINT |
|||||||||||||||||
Пример |
См. пример для функции CreateCaret. |
||||||||||||||||
Show/Cursor • Windows 98 + Windows 2000 |
|||||||||||||||||
Описание |
Функция ShowCursor отображает или скрывает курсор мыши в зависимости от значения, указанного в параметре bShow. |
||||||||||||||||
Синтаксис |
int ShowCursor( BOOL bShow ) |
||||||||||||||||
Параметры |
|||||||||||||||||
bShow |
BOOL. Если этот параметр равен TRUE, число отображений курсора увеличивается на единицу. Если этот параметр равен FALSE, число отображений уменьшается на единицу. Курсор отображается, только если число отображений больше или равно нулю. |
||||||||||||||||
Возвращаемое значение |
|||||||||||||||||
int. Новый счетчик отображений. |
|||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
ClipCursor, GetCursorPos, SetCursor, SetCursorPos |
||||||||||||||||
Пример |
В следующем примере показано, как скрыть в приложении неактивный курсор мыши, пока не будет перемещена мышь или нажата клавиша. Таймер установлен на две секунды. Каждый раз, когда происходит действие с мышью, таймер сбрасывается. По истечении установки таймера курсор мыши скрывается до тех пор, пока с мышью не будут снова выполнены какие-либо действия. |
||||||||||||||||
См. \local-sovrces\chap09\09-27.txt |
|||||||||||||||||
SwapMouseButton • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция SwapMouseButton изменяет на противоположные или восстанавливает назначения левой и правой кнопок мыши. Вызов этой функции приводит к изменению назначения кнопок мыши только на время данного сеанса Windows. |
||||||||||||||||
Синтаксис |
BOOL SwapMouseButton( BOOL bSwap ) |
||||||||||||||||
Параметры |
|||||||||||||||||
bSwap |
BOOL. Если этот параметр установлен в TRUE, левая кнопка генерирует сообщения правой кнопки, а правая — сообщения левой кнопки. Если этот параметр установлен в FALSE, восстанавливаются первоначальные назначения кнопок. |
||||||||||||||||
Возвращаемое значение |
BOOL. Если назначение кнопок мыши было изменено на противоположное до вызовы этой функции, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
SetDoubleClickTime |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_LBUTTONDO\VN, WM_RBUTTONDOWN |
|||||||||||||||||
Пример |
В следующем примере назначение левой кнопки мыши переходит к правой кнопке мыши, и наоборот, каждый раз, когда пользователь выбирает пункт меню Test!. Назначение кнопок мыши восстанавливается к обычному после выхода из приложения. |
||||||||||||||||
См. \local-sources\chap09\09-28. txt |
|||||||||||||||||
UnloadKeyboardLayout • Windows 98 • Windows 2000 |
|||||||||||||||||
Описание "~ |
Функция UnloadKeyboardLayout позволяет удалить указанную раскладку клавиатуры. Благодаря этой функции пользователю всегда доступна одна раскладка для ввода информации в наборе символов командного интерпретатора и файловой системы. |
||||||||||||||||
Синтаксис |
BOOL UnloadKeyboardLayout( HKL hkl ) |
||||||||||||||||
Параметры |
|||||||||||||||||
hkl |
HKL. Дескриптор раскладки клавиатуры, которая должна быть выгружена. |
||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE, |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
ActivateKeyboardLayout, GetKeyboardLayoutName, LoadKeyboardLayout |
||||||||||||||||
Пример |
См. пример для функции LoadKeyboardLayout. |
||||||||||||||||
VkKeyScan * Windows 98 • Windows 2000 |
|||||||||||||||||
Описание |
Функция VkKeyScan преобразует символ в соответствующий код виртуальной клавиши и состояние переключения регистра для текущей клавиатуры. Функция VkKeyScan применяется для отправки сообщений WM_KEYDOWN и WM_KEYUP другим окнам. Она может использоваться в качестве эффективного способа передачи информации между окнами, если окно-получатель уже содержит логику ввода с клавиатуры в своей функции WndProc. |
||||||||||||||||
Синтаксис |
SHORT VkKeyScan( TCHAR ch ) |
||||||||||||||||
Параметры |
|||||||||||||||||
ей |
TCHAR. Символ, который должен быть преобразован в код виртуальной клавиши. |
||||||||||||||||
Возвращаемое значение |
SHORT. В случае успешного выполнения функции младший байт возвращаемого значения содержит код виртуальной клавиши, а старший байт содержит код состояния регистра, которое может представлять собой сочетания двоичных флажков, приведенных в табл. 9.14. Если функция не нахо- |
||||||||||||||||
дит клавишу, код которой преобразуется в переданный символьный код, и младший, и старшие байты содержат -1. |
|||||||||||||||||
Включаемый файл |
winuser.li |
||||||||||||||||
См. также |
VkKeyScanEx, OemKeyScan, MapVirtualKey |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WM_KEYUP |
|||||||||||||||||
Пример |
См. пример для функции OemKeyScan. |
||||||||||||||||
VkKeyScanEx * Windows 98 + Windows 2000 |
|||||||||||||||||
Описание |
Функция VkKeyScanEx аналогична функции VkKeyScan, за исключением того, что она преобразует символы с использованием входного языка и физической раскладки клавиатуры, обозначенных указанным дескриптором раскладки клавиатуры. |
||||||||||||||||
Синтаксис |
SHORT VkKeyScanEx( TCHAR сЛ, HKL hkl ) |
||||||||||||||||
Параметры |
|||||||||||||||||
сЛ |
TCHAR. Символ, который должен быть преобразован в код виртуальной клавиши. |
||||||||||||||||
М/ |
HKL. Раскладка клавиатуры, которая должна применяться для преобразования символа. В качестве этого параметра может быть указан любой дескриптор раскладки клавиатуры, возвращенный ранее функцией LoadKey-board Layout. |
||||||||||||||||
Возвращаемое значение |
SHORT. В случае успешного выполнения функции, младший байт возвращаемого значения содержит код виртуальной клавиши, а старший — код состояния переключения регистра, которое может представлять собой сочетание двоичных флажков, приведенных в табл. 9.14. Если функция не находит клавишу, код которой преобразуется в переданный символьный код, и младший, и старшие байты содержат -1 |
||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||
См. также |
VkKeyScan, OemKeyScan, MapVirtualKey |
||||||||||||||||
Соответствующие сообщения |
|||||||||||||||||
WM_KEYDOWN, WM_KEYUP |
|||||||||||||||||
Пример |
Следующий пример аналогичен примеру, приведенному для функции OemKeyScan, за исключением того, что для получения значения виртуальной клавиши с использованием активной раскладки клавиатуры применяется функция VkKeyScanEx. |
||||||||||||||||
См. \local-sources\chap09\09-29.txt |
|||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.