Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизПолучить состояния клавиш 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c