Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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 будут координаты курсора мыши по горизонтали и вертикали (только там заморочка с переводом их в нормальные будет... нужно смотреть, в каком режиме экрана ты в данный момент находишься и от этого плясать...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)