| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Подключение миши |
| Автор: esgal 26.10.2005, 13:50 |
| Как определить нажатиэ клавиши?, проблема в том што при таком способе она отоброжаэтса нажатой вплоть до нажатия другой клавиши. int mouse_button(void) { int d; int a; a=_AX;_AX=0003; geninterrupt(0x33); _AX=a;d=_BX; return(d); } |
| Автор: Neitron 26.10.2005, 15:05 |
| О боже, это что? Может лучше Апи? |
| Автор: _hunter 26.10.2005, 15:16 |
| это, как я понял, под ДОС. какой-там API?.. это лучше у ассемблерщиков спросить... |
| Автор: BreakPointMAN 26.10.2005, 22:51 |
| esgal, проверка состояния мыши должна осуществляться в цикле. Твоя функция mouse_button вернет статус нажатых кнопок на момент ее вызова. Поэтому, если ты хочешь отслеживать, скажем, одинарные щелчки (т.е. "нажал-отпустил-сработало") тебе нужно организовать два цикла - в первом ты регулярно опрашиваешь статус кнопок до тех пор, пока ни одна кнопка не нажата. А как только будет нажата какая-то кнопка - должен срабатывать цикл, ожидающий отжатия. Соответственно, до и после второго цикла ты можешь совершать какие-то свои действия... Кстати, насколько я помню, в регистрах CX и DX после вызова функции 3 прерывания 0x33 будут координаты курсора мыши по горизонтали и вертикали (только там заморочка с переводом их в нормальные будет... нужно смотреть, в каком режиме экрана ты в данный момент находишься и от этого плясать...) |