Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
Заблокирован
1

Одновременное нажатие клавиш

07.02.2013, 10:56. Показов 4636. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, как отслеживать в WinAPI в колбэке окна одновременное нажатие клавиш? Ну там типа switch(wParam) ....тралала case VK_F1: ... break; VK_F2 ... break; а как сделать, чтоб реакция шла например на VK_F1 с VK_LSHIFT ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2013, 10:56
Ответы с готовыми решениями:

одновременное нажатие клавиш
подскажите как проверить если нажали одновременно 2 клавиши getch проверяет какая была нажата а не...

нажатие клавиш
Что можно использовать вместо getch() чтобы программа не ждала нажатия клавиши а проверяла была ли...

Нажатие клавиш
Ребята, перерыл интернет, но так и не понял, как сделать обработку нажатия клавиш с буквами...

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

3
Заблокирован
Автор FAQ
07.02.2013, 11:06 2
FarStar, не надо даже никаких CALLBACK используй GetAsyncKeyState, как это сделать посмотри в моём блоге Стрелки клавиатуры в консоли (да да там без getch и прочей кустарной ерунды именно VK_LEFT/RIGHT и т.д.)
0
Заблокирован
07.02.2013, 12:47  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Да причём тут это? Я говорю как записать правильно выражение для двух кнопок
LRESULT _stdcall WndProc(HWND hWnd, UINT msg,
                         WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
 
    switch (msg)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);       
        break;
    case WM_KEYDOWN:
        switch(wParam)
        {
        case VK_UP:
            trulala;
                        break;
видишь есть case для VK_UP, а мне надо к примеру не только для VK_UP, а для одновременно VK_UP + VK_LSHIFT

выражение case VK_UP & VK_LSHIFT не срабатывает
0
Заблокирован
Автор FAQ
07.02.2013, 13:14 4

Не по теме:

FarStar, да при всём, взял бы да погуглил что за функцию тебе посоветовал...
Через WM_KEYDOWN не сделаешь нужны или акселераторы или как я выше сказал поюзать GetAsyncKeyState...



Добавлено через 23 минуты
FarStar, на пальцах.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <iostream>
using namespace std;
 
int main()
{
    bool bWork = true;
    while(bWork)
    {
        if(GetAsyncKeyState(VK_SHIFT) && GetAsyncKeyState(VK_F1))
            cout<<"SHIFT + F1"<<endl;
        Sleep(10);
    }
    return 0;
}
- Нажми SHIFT + F1 в консоли. Парсинг и обработку отжатий сделаешь сам...
0
07.02.2013, 13:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2013, 13:14
Помогаю со студенческими работами здесь

Проверка на нажатие клавиш
Пишу в MS Visual C++ программу. Суть такова, что у меня есть функция_1, которая выполняется при...

рвндомное нажатие клавиш
Здравствуйте. Какую функцию использовать, чтобы пр нажатии произвольной клавиши изменялся допусти...

Автоматическое нажатие клавиш
Нужен код программы которая будет в открытом окне автоматически будет нажимать заданные клавиши?

Нажатие клавиш за определенное время
Всем доброго времени суток. Возник такой вопрос... как в С++ возможно описать такое &quot;дело&quot;:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru