/**************************************************************************** ** Эта программа демонстрирует, как можно добиться взаимодействия с мышкой,** ** используя С++ и Ассемблер. ** ****************************************************************************/ #include #include #include #include //Глобальные переменные, хранящие координаты и признак нажатия на кнопку //мыши. unsigned int MouseX, MouseY, MouseB; char IfMouse (); void ShowMouse (); void HideMouse (); void ReadMouse (); void SetMouseXY (unsigned int X, unsigned int Y); void SetMinMaxX (unsigned int Min, unsigned int Max); void SetMinMaxY (unsigned int Min, unsigned int Max); //Эта процедура проверяет доступна ли мышь char IfMouse () { unsigned int Result; asm mov ax, 0 asm int 0x33 asm mov Result, ax return Result; } //Эта процедура делает видимым курсор мыши void ShowMouse () { asm mov ax, 0x1 asm int 0x33 } //Эта процедура делает невидимым курсор мыши void HideMouse () { asm mov ax, 0x2 asm int 0x33 } //Эта процедура считывает положение курсора мыши и признак нажатия //на клавишу void ReadMouse () { asm mov ax, 0x3 asm int 0x33 asm mov MouseB, bx asm mov MouseX, cx asm mov MouseY, dx } //Эта процедура устанавливает курсор в другие координаты void SetMouseXY (unsigned int X, unsigned int Y) { asm mov ax, 0x4 asm mov cx, X asm mov dx, Y asm int 0x33 } //Эта процедура устанавливает минимальное и максимальное значение //границ промежутка, в котором может двигаться курсор мыши //в горизонтальном положении. void SetMinMaxX (unsigned int Min, unsigned int Max) { asm mov ax, 0x7 asm mov cx, Min asm mov dx, Max asm int 0x33 } //Эта процедура устанавливает минимальное и максимальное значение //границ промежутка, в котором может двигаться курсор мыши //в вертикальном положении. void SetMinMaxY (unsigned int Min, unsigned int Max) { asm mov ax, 0x8 asm mov cx, Min asm mov dx, Max asm int 0x33 } //Главная пограмма - тестирует мышь и процедуры описанные выше. main(){ clrscr(); IfMouse(); cout<<"Мышь доступна в системе.\n"; delay(3000); cout<<"Сейчас появится курсор - задержка 3 сек.\n"; delay(3000); ShowMouse(); cout<<"Сейчас курсор исчезнет - задержка 3 сек.\n"; delay(3000); HideMouse(); cout<<"Через 3 сек курсор появится вновь.\n"; delay(3000); ShowMouse(); ReadMouse(); cout<<"\nКоординаты мыши на момент #1:\n"; cout<<"Х-координата: "<