Форум программистов, компьютерный форум CyberForum.ru

Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне - C++

Восстановить пароль Регистрация
 
bugatti1231
0 / 0 / 0
Регистрация: 26.06.2013
Сообщений: 35
30.12.2013, 10:04     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #1
Здравствуйте.Делается проект Win32 на C++ с WinAPI.Подскажите пожалуйста (желательно с примерами) как лучше отлавливать нажатия на клавиатуре при активном окне. Например запущена моя программа и мне нужно при нажатии кнопок вверх, вниз, влево, вправо и Enter обрабатывались определенные сценарии как это можно реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 10:04     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне
Посмотрите здесь:

C++ Отслеживание нажатия клавиш.
C++ Программно нажать пробел в активном окне
Как отследить нажатия клавиш? C++
C++ Нажатия клавиш
Как создать сообщение нажатия клавиш клавиатуры? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
30.12.2013, 11:16     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #2
Кнопки клавиатуры посылают сообщения
WM_KEYDOWN, WM_KEYUP, WM_CHAR.
wparam для WM_KEYDOWN - это сканкод нажатой кнопки
VK_LEFT - влево
VK_RIGHT - вправо
VK_DOWN - вниз
VK_UP -вверх
bugatti1231
0 / 0 / 0
Регистрация: 26.06.2013
Сообщений: 35
30.12.2013, 11:51  [ТС]     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #3
Цитата Сообщение от zss Посмотреть сообщение
Кнопки клавиатуры посылают сообщения
WM_KEYDOWN, WM_KEYUP, WM_CHAR.
wparam для WM_KEYDOWN - это сканкод нажатой кнопки
VK_LEFT - влево
VK_RIGHT - вправо
VK_DOWN - вниз
VK_UP -вверх
спасибо. но я это уже нашел но так и не смог разобраться как заставить работать. можно кусочек кода? например я нажимаю стрелку влево и на экране выводится кусочек текста
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
30.12.2013, 11:59     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #4
C++
1
2
3
4
5
6
7
8
9
10
switch(cmd)
{
case WM_KEYDOWN:
{
   if(wparam==VK_LEFT)
     MessageBox(hwnd,"Нажата клавиша 'влево'","Сообщение",MB_OK);
}
break;
....
}
bugatti1231
0 / 0 / 0
Регистрация: 26.06.2013
Сообщений: 35
30.12.2013, 12:03  [ТС]     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #5
zss, спасибо только у меня все равно ничего не работает "wparam" так и оставить в коде или нужно свое что то написать?
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
30.12.2013, 12:10     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #6
C++
1
int WINAPI Obrabotchik(HWND hwnd,int cmd,WPARAM wparam,LPARAM lparam);
Это объявление функции обработки сообщений.
Посмотрите, как она выглядит у Вас,
и сделайте соответствующие изменения.

p.s. hwnd должно быть полноценным окном.
Для диалоговых окон не получится
(менеджер диалога перехватывает сообщения от клавиатуры).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 13:18     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне
Еще ссылки по теме:

C++ Работа программы при не активном окне
Во время набора текста вставлять разные заранее определенные фразы по нажатии горячих клавиш на клавиатуре C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
bugatti1231
0 / 0 / 0
Регистрация: 26.06.2013
Сообщений: 35
30.12.2013, 13:18  [ТС]     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне #7
zss, спасибо!!! работает. буду дальше копать. истина то была рядом
Yandex
Объявления
30.12.2013, 13:18     Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне
Ответ Создать тему
Опции темы

Текущее время: 13:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru