⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mouse.c

📁 浙大《C语言设计基础课程设计》中的例程 有些比较好的代码!
💻 C
字号:
#include "compute.h"

int  MouseLeftFlag=0; /* 鼠标左键单击标志,全局变量 1-单击 0-未单击 */

/********************************************************** 
 *  函数原型:void initmouse()                                     	*
 *  传入参数:无                                                        	*
 *  返 回 值:无                                                         	*
 *  函数功能:鼠标初始化                                   	*
 *            鼠标初始化失败,则程序终止退出               	*
 **********************************************************/
void initmouse()
{
	union REGS ireg,oreg;
	int ret;
	ireg.x.ax=0;               /* 鼠标器0号功能:鼠标复位 */
	int86(0x33,&ireg,&oreg);  /* 调用0x33中断 */
	ret=oreg.x.ax;
	if(ret!=-1)                 /* 中断返回不是-1,表示未找到鼠标驱动 */
	{
		printf("Mouse is not installed.");
		exit(1);
	}
}
/********************************************************** 
 *  函数原型:void get_mouse_position(int *x,int *y)                    	*
 *  传入参数:x, y是指针变量,指向鼠标坐标(x,y)的地址                    	*
 *  返 回 值:无                                                         	*
 *  函数功能:获取鼠标位置坐标(x,y)             	*
 *            函数无返回值,鼠标位置坐标由指针变量x,y带回  	*
 **********************************************************/
void get_mouse_position(int *x,int *y) 
{
	union REGS ireg,oreg;
	ireg.x.ax=3;                   /* 鼠标器3号功能:取按钮状态和鼠标位置 */
	int86(0x33,&ireg,&oreg); 
	*x=oreg.x.cx;                 /* 鼠标x坐标值存于指针x指向的单元 */
	*y=oreg.x.dx;                 /* 鼠标y坐标值存于指针y指向的单元 */
}
/********************************************************** 
 *  函数原型:int leftpress()                     	*
 *  传入参数:无                               	*
 *  返 回 值:1-左键单击  0-左键未单击                            	*
 *  函数功能:检测鼠标左键是否单击           	*
**********************************************************/
int leftpress() 
{
	union REGS ireg,oreg;
	ireg.x.ax=3;                 /* 鼠标器3号功能:取按钮状态和鼠标位置*/
	int86(0x33,&ireg,&oreg);
	delay(30000);               /* 延时处理 */
	if(oreg.x.bx&1)              /* 单击了左键则置MouseLeftFlag为1,
左键单击被处理后,该标志重新置为0 */
	    MouseLeftFlag=1;
	return oreg.x.bx&1; 
}
/********************************************************** 
 *  函数原型:int rightpress()                   	*
 *  传入参数:无                               	*
 *  返 回 值:1-右键单击  0-右键未单击                            	*
 *  函数功能:检测鼠标右键是否单击             	*
**********************************************************/
int rightpress() 
{
	union REGS ireg,oreg;
	ireg.x.ax=3;                 /* 鼠标器3号功能:取按钮状态和鼠标位置*/
	int86(0x33,&ireg,&oreg);
	return oreg.x.bx&2?1:0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -