Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-1102531028
Sergilov
2004-12-08 21:37
2005.01.09
Помогите создать новый Access файл.


1-1103316518
dmk
2004-12-17 23:48
2005.01.09
Key Filter


3-1102664574
DimonNew
2004-12-10 10:42
2005.01.09
ClientDataSet &amp; UpdateSQL


14-1103666315
Hypercube
2004-12-22 00:58
2005.01.09
Открытие своего магазина софта


1-1103727679
cfytr
2004-12-22 18:01
2005.01.09
Вставка в RichEdit или ее перехват





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский