我已經在Turbo C++中創建了這個程序,其中當用戶點擊屏幕上出現的方塊時,程序應該退出。如果我運行一次,該程序工作正常。但是當我再次運行它時,只要鼠標在廣場內就會退出。它不會等待點擊。我認爲這與重置鼠標有關。我的程序檢查鼠標點擊只能運行一次
#include<process.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
union REGS in,out;
void main()
{
int gdriver = DETECT,gmode;
int xp,yp,cl=0;
int x,y;
initgraph(&gdriver,&gmode,"C:\\Turboc3\\BGI");
x=getmaxx()/2;
y=getmaxy()/2;
in.x.ax=4;
in.x.cx=10;
in.x.dx=10;
int86(51,&in,&out);
in.x.ax=1;
int86(51,&in,&out);
setcolor(RED);
rectangle((x-100),(y-100),x,y);
in.x.ax=3;
while(1)
{
int86(51,&in,&out);
cl=out.x.bx;
xp=out.x.cx;
yp=out.x.dx;
if(((xp>=x-100)&&(xp<=x))&&((yp>=y-100)&&(yp<=y)))
if(cl==1)
{
cl=0;
exit(1);
}
}
}
附:我已經知道Turbo C++是一個「古老的編譯器」,我很清楚其他現代編譯器的存在,但我不得不使用這個編譯器。
重置驅動程序,的確,首先調用int 33h的函數0。全參考(omg,它仍然在):https://courses.engr.illinois.edu/ece390/books/labmanual/io-devices-mouse.html – Swift
@Swift我用in.x.ax = 0和int86( 51,&in,&out)在我的程序中的聲明。我認爲那就是你說的對的?但它仍然無法工作:( –
你運行的操作系統是什麼? – Swift