Функции ввода. Сообщения мыши., страница 5

GetDoubleClickTime                           • Windows 98   • Windows 2000

Описание

Функция GetDoubleClickTime выбирает текущее время двойного щелчка для мыши. Двойной щелчок — это два последовательных щелчка кнопкой мыши, причем второй щелчок происходит в течение определенного времени после первого. Время двойного щелчка — максимальная продолжительность времени в миллисекундах, которое может пройти между первым и вторым щелчком, чтобы щелчок считался двойным. Эта функция применяется перед вызовом функции SctDoubleClickTime и позволяет узнать текущее значение времени двойного щелчка, прежде чем его изменить.

Синтаксис

UINT GetDoubleCHckTime( VOID )

Параметры

Эта функция не имеет параметров.

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

UINT. Текущее время двойного щелчка в миллисекундах.

Включаемый файл

winuser.h

См. также

SetDoubleClickTime

Соответствующие сообщения

WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK, WM_RBUTTONDBLCLK

Пример

В следующем примере происходит обнаружение двойных щелчков левой кнопкой мыши и отображение окна сообщения при получении двойных щелчков. Когда пользователь выбирает пункт меню Test!, время двойного щелчка увеличивается на 0,1 секунды. Для получения двойных щелчков к определению стиля окна функции WinMain должен быть добавлен стиль CS_DBLCLKS. Обратите внимание, что время двойного щелчка переустанавливается в первоначальное значение при выходе из приложения.

См.    \local-sources\chap09\09-12.txt

GetlnputState                                     • Windows 98   •  Windows 2000

Описание

Функция GetlnputState определяет, имеются ли в очереди сообщений вызывающей нити сообщения кнопок мыши или клавиатуры.

Функция   GetlnputState применяется при продолжительных операциях для проверки того, нажал ли пользователь клавишу клавиатуры или кнопку мыши. Это может означать, что пользователь хочет прервать процедуру. Поскольку функция GetlnputState не извлекает сообщения из входной очереди, они в ней остаются для обработки нитью.

Синтаксис

BOOL GetInputState( VOID )

Параметры

Эта функция не имеет параметров.

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

BOOL. Если очередь содержит одно или несколько новых сообщений мыши или клавиатуры, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый

файл

winuser.h

См. также

GetQueueStatus

Соответствующие сообщения

WM_KEYDOWN, WM_KEYUP, WMJTIMER, WM_LBUTTONDOWN, WM_RBUTTONDOWN

Пример

В следующем пример устанавливается таймер с выдержкой времени в одну секунду. При отправке каждого сообщения WM_TIMER функция GetlnputState проверяет, ожидают ли обработки события ввода мыши или клавиатуры в очереди сообщений приложения.

См.    \local-sources\chap09\09-13.txt

GetKeyboardLayout                              • Windows 98   • Windows 2000

Описание

Функция GetKeyboardLayout выбирает активную раскладку для указанной нити. Если параметр нити установлен в NULL, функция возвращает раскладку для активной нити.

Синтаксис

HKL GetKeyboardLayout( DWORD idThread )

Параметры

idThread

DWORD. Дескриптор нити, которой должен быть направлен запрос, или нуль, для обозначения текущей нити.

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

HKL. Дескриптор раскладки клавиатуры региональной установки ввода для нити.

Включаемый файл

winuser.h

См. также

GetKeyboardLayoutList, GetKeyboardLayoutName, LoadKeyboardLayout

Пример

См. пример для функции LoadKeyboardLayout.

GetKeyboardLayoutList                         • Windows 98   * Windows 2000

Описание

Функция GetKeyboardLayoutList выбирает дескрипторы раскладок клавиатуры, загруженных в настоящее время в системе. Эта функция копирует дескрипторы в буфер, указанный параметром IpBuff.

Синтаксис

int GetKeyboardLayoutList( int nltems, HKL* IpBuff)

Параметры

nltems

int. Максимальное число дескрипторов, которые могут храниться в буфере, указанном параметром IpBuff.

IpBuff

HKL*. Указатель на массив, который принимает дескрипторы раскладок клавиатуры.

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

int. Возвращаемое значение — число дескрипторов раскладок, скопированных в буфер; если параметр nltems равен 0, возвращаемое значение — число элементов массива, необходимых для приема всех хранимых в настоящее время дескрипторов раскладок.

Включаемый файл

winuser.h

См. также

GetKeyboardLayoutName, GetKeyboardLayout, LoadKeyboardLayout

Пример

В следующем примере выполняется выборка раскладок клавиатуры и активизация последней раскладки клавиатуры, когда пользователь выбирает пункт меню Test!.

См.    \local-sources\chap09\09-14.txt

GetKeyboardLayoutName                      * Windows 98   «• Windows 2000

Описание

Функция GetKeyboardLayoutName выбирает имя текущей раскладки клавиатуры вызывающей нити. Для поддержки многоязычных приложений система сопровождает текущую раскладку для каждой нити, а не для системы в целом.

Синтаксис

BOOL GetKeyboardLayoutName( LPTSTR IpszName )

Параметры

IpszName

LPTSTR. Указатель на буфер, который принимает имя раскладки клавиатуры, включая завершающий нулевой символ. Буфер должен иметь длин} не менее KL_NAMELENGTH символов.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

ActivateKeyboardLayout, UnloadKeyboardLayout

Пример

В следующем примере определяется имя активной раскладки клавиатуры приложения и отображается в окне сообщения, когда пользователь выбирает пункт меню Test!.

См.    \local-sources\cbap09\09-15.txt

GetKeyboardState                                • Windows 98   •  Windows 2000

Описание

Функция GetKeyboardState копирует состояние всех 256 виртуальных клавиш в указанный буфер. Эта функция применяется для чтения состояния нескольких клавиш, например комбинаций клавиш Shift+Alt.

Синтаксис

BOOL GetKeyboardState( PBYTE pbKeyState )

Параметры

pbKeyState

PBYTE. Указатель на 256-байтовый массив, который должен принять данные состояния каждой виртуальной клавиши. В качестве индексов в массиве применяются коды виртуальных клавиш, перечисленные в табл. 9.3. Старший бит байта указанной клавиши будет установлен в 1 , если клавиша нажата, и в 0, если клавиша отпущена. Младший бит устанавливается в 1, если клавиша была нажата нечетное число раз; в ином случае он устанавливается в 0.

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

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый

файл

winuser.h

См. также

GetlnputState, SetKeyboardState

Соответствующие сообщения

WM_KEYDOWN

Пример

В следующем примере выполняется выборка состояния клавиатуры, когда пользователь выбирает пункт меню Test!. Проверяется состояние клавиш Shift и Alt для определения того, нажаты ли они. Появляется окно сообщения, которое указывает состояние этих клавиш.

См.    \local-sources\chap09\09-16. txt

GetKeyboardType                                 • Windows 98   •  Windows 2000

Описание

Функция GetKeyboardType выбирает информацию о текущей клавиатуре. В зависимости от значения параметра nKeyblnfo, эта функция выбирает либо код типа используемой клавиатуры, либо число функциональных клавиш на клавиатуре.

Синтаксис

int GetKeyboardType( int nKeyblnfo )

Параметры

nKeyblnfo

int. Тип информации о клавиатуре, которая должна быть выбрана. Этот параметр может иметь одно из значений, перечисленных в табл. 9.8.

Таблица 9.8. Значения параметра nKeyblnfo функции GetKeyboardType

Значение

Описание

0

Тип клавиатуры

1

Подтип клавиатуры

2

Число функциональных клавиш на клавиатуре

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

int. Указывает затребованную информацию. В ином случае возвращаемое значение равно 0. Если параметр nKeyblnfo равен 0, возвращаемое значение соответствует описанию, приведенному в табл. 9.9. Если параметр nKeyblnfo равен 1, возвращаемое значение зависит от аппаратных средств. Если параметр nKeyblnfo равен 2, возвращаемое значение представляет собой число функциональных клавиш на клавиатуре.

Таблица 9.9.

Тип клавиатуры GetKeyboardType

Значение

Описание                                                                           \

1

Клавиатура IBM PC/XT или совместимая (83-клавишная).

2

Клавиатура Olivetti "ICO" (102-клавишная).

3

Клавиатура IBM PC/AT (84-клавишная) или аналогичная.

4

Расширенная клавиатура IBM (101- или 102-клавишная).

5

Клавиатура Nokia 1050 и аналогичная.

6

Клавиатура Nokia 9140 и аналогичная.

7

Японская клавиатура.

Включаемый файл

winuser.h

Пример

В следующем примере отображается тип клавиатуры и число функциональных клавиш, когда пользователь выбирает пункт меню Test!.

См.    \local-soi

irces \ chap09 \09-17.txt

GetKeyNamel

ext                                 • Windows 98   • Windows 2000

Описание

Функция GetKeyNameText выбирает строку, содержащую имя клавиши. Эта функция применяется при обработке сообщений WM_KEYDOWN и WM_KEYUP. Параметр IParam передается в функцию GetKeyNameText,

и она переносит описание клавиши в строковый буфер, указанный параметром IpBuffer.

Синтаксис

int GetKeyNameText( LONG IParam, LPTSTR IpszBuffer, int cchMaxKey )

Параметры

IParam

LONG. Второй параметр сообщения клавиатуры (типа WM_KEYDOWN), которое должно быть обработано. Функция интерпретирует параметр IpParam, как показано в табл. 9.10.

IpszBuffer

LPTSTR. Указатель на буфер, который должен принять имя клавиши.

cchMaxKey

int. Максимальная длина имени клавиши в символах, не включая завершающего нулевого символа.

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

int. В случае успешного выполнения строка с нулевым символом в конце копируется в буфер, указанный параметром IpszBuffer, и возвращаемое значение представляет собой длину строки в символах типа TCHAR, без учета завершающего нулевого символа.

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

int. В случае успешного выполнения строка с нулевым символом в конце копируется в буфер, указанный параметром IpszBuffer, и возвращаемое значение представляет собой длину строки в символах типа TCHAR, без учета завершающего нулевого символа.

Таблица 9.10.

Значения параметра IParam функции GetKeyNameText

Биты

Описание

16-23

Скэн-код.

24

Флажок клавиши расширенной клавиатуры. Обозначает некоторые клавиши на расширенной клавиатуре.

25

Бит "безразличия". Этот бит устанавливается для того, чтобы функция не учитывала различия между левыми и правыми клавишами Ctrl и Shift.

Включаемый

файл

\vinuser.h

См. также

GetlnputState

Соответствующ

ие сообщения

WM_KEYDOWN, WMJKEYUP

Пример

В следующем фрагменте программы отображается имя клавиши при ее нажатии. На рис. 9.3 показано, что отображается на экране при нажатии правой клавиши Shift.