- 4
- 0
- 约3.23千字
- 约 4页
- 2021-02-02 发布于广西
- 举报
语言鼠标的操作函数集
C 语言的鼠标操作函数集
#includedos.h
#includegraphics.h
#includeconio.h
#includestdio.h
union REGS regs;
int X__max,Y__max,x_max,y_max;
void Initgr(void) /*屏幕初始化成图形模式*/
{
int w,h,grdriver=DETECT,grmode;
registerbgidriver(EGAVGA_driver);
initgraph(grdriver,grmode,);/*在双引号中可加 tc 放的路径,但要在 tc 里
有 EGAVGA.BGI 这个来初始图形*/
i
f(graphresult())/*若调用不成功,退出*/
{printf(\n 调用失败!\n);
exit(1);
}
X__max=getmaxx();/*求横向象点坐标数*/
Y__max=getmaxy();/*求纵向象点坐标数*/
getaspectratio(w,h);/*求纵横比*/
x_max=1000; /*设置屏幕坐标的宽度*/
y_max=x_max*(float)Y__max*h/((float)X__max*w);
}
int Msinit(int Xlo,int Xhi,int Ylo,int Yhi)/* 鼠标初始化*/
{int retcode;
regs.x.ax=0;/*初始化鼠标*/
int86(0x33,®s,®s);
retcode=regs.x.ax;
if(retcode==0) return 0;
regs.x.ax=7;/*设置鼠标 X 方向的移动范围*/
regs.x.cx=Xlo;
regs.x.dx=Xhi;
int86(0x33,®s,®s);
regs.x.ax=8;/*设置鼠标 Y 方向的移动范围*/
regs.x.cx=Ylo;
第 1 页
语言鼠标的操作函数集
regs.x.dx=Yhi;
int86(0x33,®s,®s);
regs.x.ax=15;/*设置 mickey 与象素的比,这各会影响鼠标移动速度*/
regs.x.cx=(int)(x_max/X__max);
regs.x.dx=(int)(y_max/Y__max);
int86(0x33,®s,®s);
return retcode;
}
int Msread(int *px,int *py,int *pbuttons)/*读鼠标位置及状态*/
{static int x0=320,y0=240,but0=0;
int xnew,ynew,ch;
do{
if(kbhit()){
ch=getch();
if(ch==13){
*pbuttons=1;
return -1;
}
else return ch; /*返回键盘输入*/
}
regs.x.ax=3; /*调用功能 3,读鼠标位置及状态*/
int86(0x33,®s,®s);
xnew=regs.x.cx;/*返回鼠标当前的位置的 X 坐标*/
ynew=regs.x.dx;/*返回鼠标当前的位置的 Y 坐标*/
*pbuttons=regs.x.bx;/*返回鼠标当前的状态*/
}while(xnew==x0ynew==y0*pbuttons==but0);
/* 当鼠标状态改变或位置改变终止循环*/
but0=*pbuttons;/*将鼠标状态保存到静态变量中*/
x0=xnew;y0=ynew;/*将鼠标位置保存到静态变量中*/
*px=xnew;*py=(int)(y_max-ynew);
return -1;
}
int Xpixel(int x)/* 由象素坐标变换为屏幕坐标*/
{ return (int)((long)X__max*x/x_max);}
int Ypixel(int y)
{ return Y__max-(int)((long)Y__max*y/y_max);}
void Cursor(int x,int y) /*显示十字光标*/
{int X=Xpixel(x),Y=Ypixel(y),color;
char *str= \0;
l
您可能关注的文档
最近下载
- 部编人教版三年级下册道德与法治全册教学课件(配2026年春改版教材).pptx
- T_CAR 11-2022 液氮低温人类遗传资源样本库.pdf VIP
- T_CAOE 83-2025 水下声光探测三维成像系统性能测试方法.pdf VIP
- CECS438-2016 住宅卫生间建筑装修一体化技术规程.docx VIP
- 室内设计平面布局图细剖.pptx VIP
- T_CALC 10-2025 安宁疗护人文关怀服务指南.pdf VIP
- CECS431-2016 低热硅酸盐水泥应用技术规程.docx VIP
- 综合实践活动二年级下册(全册教案).doc VIP
- CECS428-2016 电铸铜接地棒(线)技术规程.docx VIP
- T_CAICI 113-2025 云网智能优化职业技能标准.pdf VIP
原创力文档

文档评论(0)