Я относительно новичок в программировании, и для своего школьного проекта я хочу использовать кнопки в своей программе, поэтому я сделал экспериментальную программу на 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;
do
{
int86(51,&in,&out);
cl=out.x.bx; //Status of click
xp=out.x.cx; //X-co-ordinate
yp=out.x.dx; //Y-co-ordinate
}while(!((cl==1)&&(((xp>x-100)&&(xp<x))&&((yp>y-100)&&(yp<y))));
}
Если есть проблема в моей логике, пожалуйста, скажите мне, что это такое. Любая помощь высоко ценится. И, пожалуйста, не делайте снисходительных замечаний по поводу моего выбора компилятора. Я вынужден работать в Turbo C++, потому что моя школа не позволяет мне работать в какой-либо другой IDE.