![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| esgal |
|
|||
|
Unregistered |
Как определить нажатиэ клавиши?, проблема в том што при таком способе она отоброжаэтса нажатой вплоть до нажатия другой клавиши.
int mouse_button(void) { int d; int a; a=_AX;_AX=0003; geninterrupt(0x33); _AX=a;d=_BX; return(d); } |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
О боже, это что? Может лучше Апи?
-------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
это, как я понял, под ДОС. какой-там API?..
это лучше у ассемблерщиков спросить... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
esgal, проверка состояния мыши должна осуществляться в цикле. Твоя функция mouse_button вернет статус нажатых кнопок на момент ее вызова. Поэтому, если ты хочешь отслеживать, скажем, одинарные щелчки (т.е. "нажал-отпустил-сработало") тебе нужно организовать два цикла - в первом ты регулярно опрашиваешь статус кнопок до тех пор, пока ни одна кнопка не нажата. А как только будет нажата какая-то кнопка - должен срабатывать цикл, ожидающий отжатия. Соответственно, до и после второго цикла ты можешь совершать какие-то свои действия... Кстати, насколько я помню, в регистрах CX и DX после вызова функции 3 прерывания 0x33 будут координаты курсора мыши по горизонтали и вертикали (только там заморочка с переводом их в нормальные будет... нужно смотреть, в каком режиме экрана ты в данный момент находишься и от этого плясать...)
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |