WM_KEYDOWN и семейство VK_****
От: Аноним  
Дата: 30.03.08 14:48
Оценка:
Всем привет. Подскажите как в проекте win32 console application (MS Visual Studio.NET) сделать так, чтобы при нажатии на клавиши F1, F2 и т.д выполнялось определенное действие( кому то вопрос покажется глупым, но я еще только учусь ). Заранее спасибо
Re: WM_KEYDOWN и семейство VK_****
От: AOD Россия  
Дата: 30.03.08 15:16
Оценка:
Аноним

Логика обработки сообщений WM_KEYDOWN
Один из простейших способов создать интерфейс клавиатуры — это использовать логику обработки сообщений
WM_KEYDOWN в оконной процедуре:
// ........................
    case WM_KEYDOWN
        iVscrollInc = iHscrollInc = 0;
        switch(wParam)
        {
            case VK_F1:
                // Необходимые действия
                break;
            case VK_F2:
                // Необходимые действия
                break;
            default:
                break;
        }
//.........................
Re: WM_KEYDOWN и семейство VK_****
От: Norfolc Тренажеры интуиции
Дата: 30.03.08 15:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем привет. Подскажите как в проекте win32 console application (MS Visual Studio.NET) сделать так, чтобы при нажатии на клавиши F1, F2 и т.д выполнялось определенное действие( кому то вопрос покажется глупым, но я еще только учусь ). Заранее спасибо


В консольных приложениях функциональные клавиши состоят из двух кодов: нуля и кода клавиши.
Чтобы обрабатывать F1-F10 нужно функцией getch() считать символ, проверить, является ли он нулем, и если да, то считать ещё один символ.


unsigned char ch;
do
{
    ch = getch();
    printf("%d ", ch);
    if (ch == 0)
    {
        ch = getch();
        printf("%d ", ch);
        switch (ch)
        {
            case 59: // F1
                printf(" - F1 ");
                break;
            //...
            case 68: // F10
                printf(" - F10 ");
                break;
        }
    }
} while( ch != 27 ); // ESC

Советую воспользоваться этим кодом для определения числовых кодов необходимых клавиш.
Re[2]: WM_KEYDOWN и семейство VK_****
От: Norfolc Тренажеры интуиции
Дата: 30.03.08 15:40
Оценка:
Здравствуйте, AOD, Вы писали:

AOD>Логика обработки сообщений WM_KEYDOWN

AOD>Один из простейших способов создать интерфейс клавиатуры — это использовать логику обработки сообщений
AOD>WM_KEYDOWN в оконной процедуре:

Это здесь не подойдет. Тут консольное приложение — следовательно нет оконной процедуры и очереди сообщений.
Re[2]: WM_KEYDOWN и семейство VK_****
От: AOD Россия  
Дата: 30.03.08 15:43
Оценка:
Да пожалуй. Чет недоконца вник в вопрос...
Re[2]: WM_KEYDOWN и семейство VK_****
От: Аноним  
Дата: 01.04.08 07:00
Оценка:
Здравствуйте, Norfolc, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>Всем привет. Подскажите как в проекте win32 console application (MS Visual Studio.NET) сделать так, чтобы при нажатии на клавиши F1, F2 и т.д выполнялось определенное действие( кому то вопрос покажется глупым, но я еще только учусь ). Заранее спасибо


N>В консольных приложениях функциональные клавиши состоят из двух кодов: нуля и кода клавиши.

N>Чтобы обрабатывать F1-F10 нужно функцией getch() считать символ, проверить, является ли он нулем, и если да, то считать ещё один символ.


N>
N>unsigned char ch;
N>do
N>{
N>    ch = getch();
N>    printf("%d ", ch);
N>    if (ch == 0)
N>    {
N>        ch = getch();
N>        printf("%d ", ch);
N>        switch (ch)
N>        {
N>            case 59: // F1
N>                printf(" - F1 ");
N>                break;
N>            //...
N>            case 68: // F10
N>                printf(" - F10 ");
N>                break;
N>        }
N>    }
N>} while( ch != 27 ); // ESC
N>

N>Советую воспользоваться этим кодом для определения числовых кодов необходимых клавиш.

Большое спасибо, очень помогли
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.