Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Получить состояния клавиш Ctrl, Alt, Shift   Найти похожие ветки 

 
Tack   (2004-11-22 00:44) [0]

Здавствуйте!

Как получить состояния клавиш Ctrl, Alt, Shift (нажато/ненажато), когда обрабатывается сообщение WM_KEYDOWN?
Передаются ли все эти состояния через WPARAM/LPARAM в каких-нибудь битах? Я в MSDN нашел биты состояния только для клавиши Alt.

Есть какая-нибудь альтернатива функции GetKeyboardState() для этого дела, чтобы побыстрее работало?


 
Piter ©   (2004-11-22 00:52) [1]

Например, для контрола:

if (Word(GetKeyState(VK_CONTROL)) shr 15)=1 then
 beep;


 
Tack   (2004-11-22 01:05) [2]

А чем отличаются GetKeyState и GetAsyncKeyState ?


 
Piter ©   (2004-11-22 01:59) [3]

А что, ты не смог найти в справке описания отличий? :)

Тогда вот:

"Remarks

The key status returned from this function changes as a given thread reads key messages from its message queue. The status does not reflect the interrupt-level state associated with the hardware. Use the GetAsyncKeyState function to retrieve that information"


 
VMcL ©   (2004-11-22 07:44) [4]

>>Piter ©  (22.11.04 00:52) [1]

ИМХО, так лучше:
if GetKeyState(VK_CONTROL) and $8000 <> 0 then
 beep;


 
Piter ©   (2004-11-22 15:41) [5]

VMcL ©   (22.11.04 7:44) [4]

наверное, так действительно лучше. Мой код - первое что пришло в голову после прочтения справки...



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.065 c
4-1101031337
InfMag
2004-11-21 13:02
2005.01.09
Как убрать из окна, которое слево от трея мою прогу?


11-1085054241
Ann
2004-05-20 15:57
2005.01.09
исходники mirror, mckObjs, mckCtrls, mcKACMIn, mckSoundctl


1-1103224439
Der Juvas
2004-12-16 22:13
2005.01.09
Обращение к порту и получение HTML страницы


9-1095512462
Jus
2004-09-18 17:01
2005.01.09
Как в DelphiX спрятать курсор и отображать?


14-1103545527
Comp
2004-12-20 15:25
2005.01.09
MSDN - какая разница ?