#include <stdio.h>
#include <conio.h>
#include <dos.h>
struct SMouse
{
int Show(void)
{
regs.r_ax = 0x01;
intr(0x33, ®s);
return 0;
}
int Hide(void)
{
regs.r_ax = 0x02;
intr(0x33, ®s);
return 0;
}
int Update(void)
{
regs.r_ax=0x03;
intr(0x33, ®s);
button=regs.r_bx & 0x0f;
x=regs.r_cx >> 2 +1;
y=regs.r_dx >> 2 +1;
return 0;
}
struct REGPACK regs;
int button, x, y;
};
int main(void){
int flag;
clrscr();
struct SMouse mouse;
mouse.Show();
gotoxy(10,10);
printf("button");
flag=0;
do{
mouse.Update();
gotoxy(1,1);
printf("X=%d Y=%d\n B=%d",mouse.x,mouse.y,mouse.button);
if( (mouse.x>=9 && mouse.x<=16 && mouse.y==9 && mouse.button==1)){
flag=1;
gotoxy(10,11);
printf("Ok!!!");
}
}while(flag!=1);
gotoxy(11,10);
mouse.Hide();
getch();
}
Работа с прерываниями для мыши
Разработать обработчик прерывания таймера, который через 1 минуту после своей установки маскирует (блокирует) прерывания от "мыши" и еще через 1 минуту размаскирует (деблокирует) прерывания "мыши". Указание: при разработке использовать вектор пользовательского прерывания таймера 1Ch и порт 21h масок контроллера прерываний 8259А. Подскажите, на чем как лучше сделать?
pascal, cpp, asm
На с++, конечно. обрабатывать прерывания мыши можно так:
если можно, скиньте на [email]hoyevan@mail.ru[/email]:(