- •«Программирование внешних устройств»
- •Механизм сообщений от клавиатуры.
- •Коды oem, ansi, ascii, виртуальные коды.
- •Виртуальные клавиши.
- •Символьные сообщения.
- •Системные сообщения.
- •Преобразование кодов.
- •Как отличить нажатия совпадающих клавиш.
- •Как узнать ввод строчных и прописных букв.
- •Фокус ввода.
- •Захват и освобождение окном мыши.
- •Обработка сообщений от мыши.
- •Функция таймера.
Функция таймера.
//Данный таймер предназначен для замены заголовков окон через 10 секунд. Данная функция возвращает ID таймера.
VOID CALLBACK TimerProc(HWND hWnd, UINT message, UINT sec2, DWORD dwTime)
{SetWindowText(hWnd, L"333");} //меняет название заголовка 1-го окна на заголовок 3-го
VOID CALLBACK TimerProc2(HWND hWnd2, UINT message, UINT sec2, DWORD dwTime)
{SetWindowText(hWnd2, L"111");} //меняет название заголовка 2-го окна на заголовок 1-го
VOID CALLBACK TimerProc3(HWND hWnd3, UINT message, UINT sec2, DWORD dwTime)
{SetWindowText(hWnd3, L"222");} //меняет название заголовка 3-го окна на заголовок 2-го
//В данной функции устанавливается таймер для каждого из трех окон.
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{ SetTimer(hWnd, sec2, 10000, (TIMERPROC) TimerProc);
SetTimer(hWnd2, sec2, 10000, (TIMERPROC) TimerProc2);
SetTimer(hWnd3, sec2, 10000, (TIMERPROC) TimerProc3);}
Результаты работы программного обеспечения
Рис 2 – Скриншот выполнения программы
Выводы
В данной программе осуществляется работа с такими устройствами как клавиатура, мышь и таймер. Для каждого из данных устройств осуществляется обработка сообщений.
В данной программе присутствует 2 таймера, реализация которых выполнена двумя способами. При первой реализации таймера Windows посылает сообщения WM_TIMER обычной оконной процедуре приложения. Во втором случае реализована функция таймера.
Для работы с мышью в оконной процедуре необходимо сделать обработку сообщений, например таких как: WM_MOUSEMOVE, WM_NCLBUTTONDOWN, WM_LBUTTONDOWN.
Для работы с клавиатурой в оконной процедуре необходимо сделать обработку сообщений, например таких как: WM_KEYDOWN (нажатие клавиш), WM_KEYUP (отжатие клавиш), WM_SYSKEYDOWN (нажатие системных клавиш), WM_SYSKEYUP (отжатие системных клавиш), WM_CHAR (обработка символьных сообщений).
Для раздличных сообшений wParam, lParam содержат различную информацию.
Для получения информации о нажатых клавишах мыши, клавиатуры необходимо обратиться к параметрам wParam, lParam.