私はこのプログラムを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);
}
}
}
P.S.私は既にTurbo C++が「古代のコンパイラ」であり、他の現代のコンパイラの存在をよく知っていることを知っていますが、このコンパイラを使用することを余儀なくされています。
ドライバをリセットします。実際は、最初はint 33hの関数0を呼び出します。完全な参照(それはまだそれです):https://courses.engr.illinois.edu/ece390/books/labmanual/io-devices-mouse.html – Swift
@Swift私はin.x.ax = 0とint86を使用しました51、&in、&out)ステートメントを使用します。私はあなたが正しいことを言ったと思う?しかし、それはまだ動作しません:( –
実行するOSは何ですか? – Swift