c语言graph编程和中断问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:18:00
1>在图形模式下,怎样显示鼠标?

2>
reg.x.ax=3;
while(!kbhit())
{
reg.x.bx=0;
int86(0x33,®,®);
if(reg.x.bx)
{
...
}
}

有这个循环,为什么我按任意一键跳出循环后程序发生错误?

代码如下:
#include <conio.h>
#include <dos.h>
#include <graphics.h>
main()
{
int gd=VGA,gm=VGAHI;
int mousex,mousey;
int poly[8];
union REGS inregs,outregs;
inregs.x.ax=3;
initgraph(&gd,&gm,"");
setwritemode(1);
setcolor(GREEN);
int86(0x33,&inregs,&outregs);
mousex=outregs.x.cx;
mousey=outregs.x.dx;
poly[0]=mousex;
poly[1]=mousey;
poly[2]=mousex+10;
poly[3]=mousey+25;
poly[4]=mousex+25;
poly[5]=mousey+10;
poly[6]=mousex;
poly[7]=mousey;
drawpoly(4,poly);
while (!kbhit())
{
setwritemode(1);
setcolor(GREEN);
int86(0x33,&inregs,&outregs);
if ((mousex!=outregs.x.cx) && (mousey!=outregs.x.dx))
{
drawpoly(4,poly);
mousex=outregs.x.cx;
mousey=outregs.x.dx;
poly[0]=mousex;
poly[1]=mousey;
poly[2]=mousex+10;
poly[3]=mousey+25;
poly[4]=mousex+25;
poly[5]=mousey+10;