Всем привет. Подскажите как в проекте win32 console application (MS Visual Studio.NET) сделать так, чтобы при нажатии на клавиши F1, F2 и т.д выполнялось определенное действие( кому то вопрос покажется глупым, но я еще только учусь ). Заранее спасибо
Аноним
Логика обработки сообщений WM_KEYDOWN
Один из простейших способов создать интерфейс клавиатуры — это использовать логику обработки сообщений
WM_KEYDOWN в оконной процедуре:
// ........................
case WM_KEYDOWN
iVscrollInc = iHscrollInc = 0;
switch(wParam)
{
case VK_F1:
// Необходимые действия
break;
case VK_F2:
// Необходимые действия
break;
default:
break;
}
//.........................
Здравствуйте, Аноним, Вы писали:
А>Всем привет. Подскажите как в проекте 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
Советую воспользоваться этим кодом для определения числовых кодов необходимых клавиш.
Да пожалуй. Чет недоконца вник в вопрос...
Здравствуйте, 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>Советую воспользоваться этим кодом для определения числовых кодов необходимых клавиш.
Большое спасибо, очень помогли