Операционная система Microsoft Windows 3.1 для программиста -том 1


Параметры клавиатурных сообщений - часть 7


Для вывода текстовых строк необходимо использовать явное преобразование типа, как это сделано в нашем примере:

size = wsprintf(szBuf, "Клавиатура %s,\nподтип %d,\n", (LPSTR)apszKbTypes[type-1], subtype);

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

На рис. 5.1 представлено сообщение, которое было выведено при запуске приложения KBTYPE на компьютере одного из авторов этой книги.

Рис. 5.1. Сообщение приложения KBTYPE

Прежде чем перейти к следующему разделу, приведем исходные тексты еще одного приложения, демонстрирующего использование функций GetKeyboardState и SetKeyboardState для изменения состояния клавиш <Num Lock>, <Caps Lock>, <Scroll Lock>. Это приложение называется KBLED. Исходный текст основного файла приложения приведен в листинге 5.3.

Листинг 5.3. Файл kbled\kbled.cpp

// ---------------------------------------- // Переключение состояния виртуальных // клавиш // ----------------------------------------

#define STRICT #include <windows.h>

#pragma argsused int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { // Буфер для записи состояния клавиш BYTE aKBState[256];

// Определяем состояние клавиш GetKeyboardState(aKBState);

MessageBox(NULL, "Нажмите 'OK' для" " переключения клавиш <NumLock>, " "<ScrollLock>, <CapsLock>", "KBLED Application", MB_OK | MB_ICONINFORMATION);

// Инвертируем текущее состояние клавиш // <NumLock>, <ScrollLock>, <CapsLock> aKBState[VK_NUMLOCK] ^= 1; aKBState[VK_SCROLL] ^= 1; aKBState[VK_CAPITAL] ^= 1;

// Устанавливаем новое состояние клавиш SetKeyboardState(aKBState);

MessageBox(NULL, "Нажмите 'OK' для обратного" " переключения", "KBLED Application", MB_OK | MB_ICONINFORMATION);

// Возвращаем исходное состояние клавиш // <NumLock>, <ScrollLock>, <CapsLock> aKBState[VK_NUMLOCK] ^= 1; aKBState[VK_SCROLL] ^= 1; aKBState[VK_CAPITAL] ^= 1;




Начало  Назад  Вперед



Книжный магазин