@s2sk1337

Как отловить нажатие двух клавиш WinApi?

Привет.

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

LRESULT CALLBACK UpdateMessagesWindow(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
	{
		case WM_KEYDOWN:
			CheckPressKey(wParam);
			break;
	}
}

void CheckPressKey(keyid)
{
if(keyid & 0x41) // A 
{

}

if(keyid & 0x57) // W
{

}
}


Но код в проверке выполняется при нажатии совершенно любой клавиши, а не по "A" и "W". Как быть?
  • Вопрос задан
  • 1986 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
код в проверке выполняется при нажатии совершенно любой клавиши, а не по "A" и "W". Как быть?

Просто прочитайте описание WM_KEYDOWN. wParam -- это не битовая маска, это код клавиши, не надо писать if(keyid & 0x41), надо писать if(keyid == 0x41).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы