Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Мышь + Svga256


Автор: dima_mak 11.9.2004, 10:45
Можно ли както использовать мышь вместе с svga256 драйвером? у меня была либо для мышки написаная на асм, но после инициальзации графика при попытке инициальцировать мышку меня выкидывает из С. может кто знает рабочии вариант использования мышки. (ТУРБО С)

Автор: dima_mak 11.9.2004, 11:07
Вот я нашел функцию для получения координат мышки:

void xy(int *x, int *y) // returns the X,Y values of the mouse pointer
{ _AX=0x3;
geninterrupt(0x33);
*x=_CX;
*y=_DX;
}

но она работает только на пол экрана(640,200). модет кто то знает как это исправить?

Автор: Конструктор 13.9.2004, 08:36
Да использовать можно. Кроме получения координат мыши, можно получить ускорения мыши (т.е. смещение в пикселах с момента посленего перемещения). Отслеживая эти ускорения можно самому вычислять координаты мыши и самостоятельно препятствовать ее выходу за экран. В этом случае тебе придется отрисовывать курсор мыши самостоятельно, так как координаты не будут совпадать. Естественно аппаратный курсор курсор надо спрятать.

Код

void GetMickeyCount(int & x ,int & y){
int mx,my;
asm{
 MOV AX,0x0B
 INT 0x33
 MOV mx,CX
 MOV my,DX
}
x=mx;
y=my;
}


Собственно ф-ция для получения этих "ускорений"

Автор: dima_mak 14.9.2004, 15:35
Ты помоему меня не правельно понял. меня вполней устраивает аппаратный курсор но я не могу его отобразить.

Автор: Конструктор 14.9.2004, 16:57
Ух точно не помню, но кажется у меня аппаратный на svga256 на режимах больших чем 320x200 не отображался вообще. Все что я делал с мышом в ДОС делал вот так вот как написал, дает полный контроль над курсором и мышом.

Автор: dima_mak 15.9.2004, 13:56
вот и у меня не отображаеться.

Автор: Конструктор 15.9.2004, 16:48
Ну и рисовал бы самостятельно по координатам smile.gif Гораздо все будет понятнее и прозрачнее, да и кУрсор можно забабахать в пол экрана.

Автор: dima_mak 16.9.2004, 12:49
Я так и сделал. всё работает.

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