C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Перехват клавиши Shift
Aptem
Отправлено: 05.11.2003, 15:39


Мастер участка

Группа: Участник
Сообщений: 349



Привет !

Я обрабатываю событие OnKeyDown, то есть могу определить какая клавиша была нажата. Вопрос: А как определить, была ли нажата вместе с ней клавиша Shift ? В этот обработчик передается переменная TShiftState Shift, но я не понимаю как ее перехватить ?

Спасибо за внимание !!!
Asher
Отправлено: 05.11.2003, 16:54


Мастер участка

Группа: Модератор
Сообщений: 550



В смысле перехватить?
Может просто расшифровать?
Просто читаем Help и смотрим примеры

Флаги состояния:
ssShift The Shift key is held down.
ssAlt The Alt key is held down.
ssCtrl The Ctrl key is held down.
ssLeft The left mouse button is held down.
ssRight The right mouse button is held down.
ssMiddle The middle mouse button is held down.
ssDouble The mouse was double-clicked.

Проверка состояния:
if (Shift.Contains(ssCtrl)){
//Бла-бла-бла
}
Aptem
Отправлено: 06.11.2003, 04:47


Мастер участка

Группа: Участник
Сообщений: 349



QUOTE (Asher @ 05/11/2003, 17:56)
Проверка состояния:
if (Shift.Contains(ssCtrl)){
//Бла-бла-бла
}

Вот именно это мне и нужно было...

Огромное спасибо !!! biggrin.gif
Nimble
Отправлено: 11.11.2003, 18:38


Дежурный стрелочник

Группа: Участник
Сообщений: 34



Если вдруг понадобится получить состояние какой-либо клавиши, можно использовать GetKeyState (не во всех функциях как параметр передается нажатая клавиша).

Я в проге, при нажатии на батон проверяю нажата ли клавиша контрол:
CODE

 if (GetKeyState(17)<0)
 {
   //чего-то там
 }

может пригодится smile.gif

Отредактировано Nimble — 11/11/2003, 19:40

Вернуться в Вопросы программирования в C++Builder