c语言鼠标环绕特效,C语言写的鼠标有残影,急需解决方案,在线等待!
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
c語言寫的鼠標(biāo)點(diǎn)擊后留下鼠標(biāo)的殘影,求高手的解決方案,多謝了。代碼如下:
int?x,y;
union?REGS?r;
void?mouse()
{
int?xmin,xmax,ymin,ymax;
setcolor(YELLOW);
xmin=2,xmax=638;
ymin=2,ymax=478;
setwritemode(XOR_PUT);
mouseinit(xmin,xmax,ymin,ymax);
x=200,y=200;
mouseshape(x,y);
}
void?mouseinit(int?x1,int?x2,int?y1,int?y2)
{
r.x.ax=0;
int86(51,&r,&r);
if(r.x.ax==0)
{
printf("error!\n");
exit(1);
}
r.x.ax=7;
r.x.cx=x1;
r.x.dx=x2;
int86(51,&r,&r);
r.x.ax=8;
r.x.cx=y1;
r.x.dx=y2;
int86(51,&r,&r);
}
int??mouseget(int?*x1,int?*y1,int?*butt1)
{
int?x01=*x1,y01=*y1,butt=0;
int?xn,yn;
do
{
r.x.ax=3;
int86(51,&r,&r);
xn=r.x.cx;
yn=r.x.dx;
*butt1=r.x.bx;
}while(xn==x01&&yn==y01&&*?butt1==butt);
*x1=xn;
*y1=yn;
if(*butt1)
{
return(-1);
}
else
{
return(1);
}
}
void?mouseshape(int?x1,int?y1)
{
setcolor(MAGENTA);
setlinestyle(0,3,1);
line(x1,y1,x1+8,y1+2);
line(x1,y1,x1+7,y1+3);
line(x1,y1,x1+6,y1+2);
line(x1,y1,x1+4,y1+5);
line(x1,y1,x1+2,y1+6);
line(x1,y1,x1+8,y1+8);
}
void?mousenewxy(int?*x1,int?*y1,int?*butt1)
{
int?xx0=*x1,yy0=*y1;
int?x3,y3;
int?ch=mouseget(&x3,&y3,butt1);
if(ch>0)
{
mouseshape(xx0,yy0);
mouseshape(x3,y3);
}
else
{
mouseshape(xx0,yy0);
mouseshape(x3,y3);
}
*x1=x3;
*y1=y3;
}
總結(jié)
以上是生活随笔為你收集整理的c语言鼠标环绕特效,C语言写的鼠标有残影,急需解决方案,在线等待!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql筛选两个表有相同项的数据库_用
- 下一篇: linux cpu uuid 查看,Li