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

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

Восстановить пароль Регистрация
 
FarStar
Заблокирован
07.02.2013, 10:56     Одновременное нажатие клавиш #1
Подскажите, как отслеживать в WinAPI в колбэке окна одновременное нажатие клавиш? Ну там типа switch(wParam) ....тралала case VK_F1: ... break; VK_F2 ... break; а как сделать, чтоб реакция шла например на VK_F1 с VK_LSHIFT ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2013, 10:56     Одновременное нажатие клавиш
Посмотрите здесь:

C++ Нажатие клавиш за определенное время
Автоматическое нажатие клавиш C++
C++ нажатие клавиш
Нажатие клавиш C++
Как имитировать нажатие клавиш? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
07.02.2013, 11:06     Одновременное нажатие клавиш #2
FarStar, не надо даже никаких CALLBACK используй GetAsyncKeyState, как это сделать посмотри в моём блоге Стрелки клавиатуры в консоли (да да там без getch и прочей кустарной ерунды именно VK_LEFT/RIGHT и т.д.)
FarStar
Заблокирован
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 не срабатывает
-=ЮрА=-
Заблокирован
Автор 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 в консоли. Парсинг и обработку отжатий сделаешь сам...
Yandex
Объявления
07.02.2013, 13:14     Одновременное нажатие клавиш
Ответ Создать тему
Опции темы

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