PersonalCorpus 版 (精华区)
发信人: ambercctv (我爱紫丁香), 信区: Asm
标 题: 我来贴一个DOS下的鼠标例程
发信站: 哈工大紫丁香 (2003年05月18日22:02:28 星期天), 站内信件
union REGS regs; /* 寄存器 */
void initmouse() /* 初始化鼠标 */
{
int flag;
regs.x.ax=0;
int86(0x33,®s,®s); /* 0x33为鼠标中断 */
flag=regs.x.ax;
if(flag!=-1) /** 鼠标初始化失败 **/
{ printf("\n\n\tNO MOUSE!"); exit(0); }
}
void noico() /* hide mouse curser 隐藏鼠标光标 */
{
regs.x.ax=2;
int86(0x33,®s,®s);
}
void ico() /* show mouse curser 显示鼠标光标*/
{
regs.x.ax=1;
int86(0x33,®s,®s);
}
/* 控制鼠标活动的范围并显示鼠标光标 */
void showmouse() /* set the range of the mouse curser */
{
regs.x.ax=7;
regs.x.cx=25;
regs.x.dx=620;
int86(0x33,®s,®s); /* 鼠标X方向活动范围(25~620) */
regs.x.ax=8;
regs.x.cx=25;
regs.x.dx=455;
int86(0x33,®s,®s); /* 鼠标Y方向活动范围(25~455) */
ico();
}
/* 功能:获取鼠标坐标及鼠标按钮按下的状态 */
/* 参数:指向存储鼠标当前坐标的变量的指针 */
int mouseimg(int *x,int *y) /* mouse position and button down */
{
regs.x.ax=3;
int86(0x33,®s,®s);
*x=regs.x.cx;
*y=regs.x.dx;
return regs.x.bx; /* 返回按钮按下的状态 */
}
--
◥◤ C C T V ◢◤ ◥◤ C C T V ◢◤
紫丁香你是那么迷人
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.208]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.772毫秒