Клавиатура. Порядок прохождения сообщений. (Лекция 6) презентация

Порядок прохождения сообщений М1 М2

Слайд 1Лекция 6 Клавиатура


Слайд 2Порядок прохождения сообщений

М1
М2


Слайд 3Сообщение от клавиатуры


Слайд 4Активное окно



Слайд 5Активное окно

Активное окно – это окно, имеющее фокус ввода

(input focus), либо имеющее дочернее окно, которое имеет фокус ввода.

WM_SETFOCUS - окно получает фокус ввода

WM_KILLFOCUS - окно теряет фокус ввода


Слайд 6

Alt +

Alt +


Слайд 7Типы аппаратных сообщений от клавиатуры


Слайд 8Содержимое lParam


Слайд 9
Скан - код клавиатуры
1


Слайд 10Содержимое lParam


Слайд 11
Второй параметр wParam содержит виртуальный код клавиши (virtual key code), идентифицирующий

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

Слайд 12Получение времени нажатия клавиши и состояния управляющих клавиш.

LONG GetMessageTime(void); // время

возникновения
обрабатываемого сообщения

SHORT GetKeyState(VK_SHIFT); // состояние клавиш в момент
образования сообщения

SHORT GetAsyncKeyState(VK_SHIFT); // состояние клавиш в
момент настоящий момент


Слайд 13Возникновение символьного сообщения

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

Очередь сообщений
WM_KEYDOWN
WM_CHAR


Слайд 14Типы символьных сообщений

Содержимое lParam - аналогично аппаратным сообщениям
wParam - содержит символьный

код клавиши в системе ASCII

Слайд 15Пример 1

В качестве примера рассмотрим случай, когда пользователь программы нажимает и

отпускает клавишу "А". Если переключатель не включен и не нажата клавиша , то оконная процедура получит три следующих сообщения:

Сообщение Клавиша или код
WM_KEYDOWN Виртуальная клавиша "А"
WM_CHAR ASCII код "а"
WM_KEYUP Виртуальная клавиша "А"


Слайд 16Пример 2

Если вы нажимаете "А" при нажатой клавише , то оконная

процедура получит следующий ряд сообщений:

Сообщение Клавиша или код
WM_KEYDOWN Виртуальная клавиша VK_SHIFT
WM_KEYDOWN Виртуальная клавиша "А"
WM_CHAR ASCII код "А"
WM_KEYUP Виртуальная клавиша "А"
WM_KEYUP Виртуальная клавиша VK_SHIFT


Слайд 17СОБЫТИЕ!!!

CreateCaret(hWnd, pImage, cxChar, cyChar); // создание каретки
SetCaretPos(cxChar, cyChar); // установить позицию

каретки в позицию cxChar, cyChar
GetCaretPos(); // получить положение каретки
GetCaretBlinkTime(); // Получение частоты мигания
SetCaretBlinkTime(); // Установка частоты мигания
ShowCaret(hWnd); // показать каретку
HideCaret(hWnd); // спрятать каретку
DestroyCaret(); // удалить каретку

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика