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

📄 mouse.c

📁 学生成绩管理系统,C语言开发,图形界面,希望对大家有所帮助
💻 C
字号:
#include<bios.h> 
#include<conio.h> 
#include<dos.h> 
#define Mousered 255 
#define Mousegreen 255 
#define Mouseblue 255 
int mousex,mousey; 
long int MouseCounter=0; 
char up[16][16],down[16][16],mouse_draw[16][16],pixel_save[16][16][3]; 
void exputpixel256(int x,int y,int color,int xor); 
void MouseMath()/*计算鼠标的样子*/ 
{int i,j,jj,k; 
long UpNum[16]={ 
0x3fff,0x1fff,0x0fff,0x07ff, 
0x03ff,0x01ff,0x00ff,0x007f, 
0x003f,0x00ff,0x01ff,0x10ff, 
0x30ff,0xf87f,0xf87f,0xfc3f 
}; 
long DownNum[16]={ 
0x0000,0x7c00,0x6000,0x7000, 
0x7800,0x7c00,0x7e00,0x7f00, 
0x7f80,0x7e00,0x7c00,0x4600, 
0x0600,0x0300,0x0300,0x0180 
}; 
for(i=0;i<16;i++) 
{ 
j=jj=15; 
while(UpNum[i]!=0) 
{ 
up[i][j]=UpNum[i]>2; 
j--; 
UpNum[i]/=2; 
} 
while(DownNum[i]!=0) 
{ 
down[i][jj--]=DownNum[i]>2; 
DownNum[i]/=2; 
} 
for(k=j;k>=0;k--) 
up[i][k]=0; 
for(k=jj;k>=0;k--) 
down[i][k]=0; 
for(k=0;k<16;k++)/*四种组合方式*/ 
{ 
if(up[i][k]==0&amt;&amt;down[i][k]==0) 
mouse_draw[i][k]=1; 
else if(up[i][k]==0&amt;&amt;down[i][k]==1) 
mouse_draw[i][k]=2; 
else if(up[i][k]==1&amt;&amt;down[i][k]==0) 
mouse_draw[i][k]=3; 
else 
mouse_draw[i][k]=4; 
} 
} 
mouse_draw[1][2]=4;/*特殊点*/ 
} 
/*鼠标光标显示*/ 
void MouseOn(int x,int y) 
{ 
int i,j; 
for(i=0;i<16;i++)/*画鼠标*/ 
for(j=0;j<16;j++) 
{ 
getpixel(x+j,y+i,&amt;pixel_save[i][j][0],&amt;pixel_save[i][j][1],&amt;pixel_save[i][j][2]); 
if(mouse_draw[i][j]==1) 
exputpixel(x+j,y+i,0,0,0,0); 
else if(mouse_draw[i][j]==2) 
exputpixel(x+j,y+i,Mousered,Mousegreen,Mouseblue,0); 
} 
MouseCounter++; 
} 
/*隐藏鼠标*/ 
void MouseOff() 
{ 
int i,j,x,y; 
int red,green,blue; 
x=mousex; 
y=mousey; 
for(i=0;i<16;i++)/*原位置异或消去*/ 
for(j=0;j<16;j++) 
{ 
if(mouse_draw[i][j]==3||mouse_draw[i][j]==4) 
continue; 
exputpixel(x+j,y+i,pixel_save[i][j][0],pixel_save[i][j][1],pixel_save[i][j][2],0); 
} 
} 
static far mouse(int *m1,int *m2,int *m3,int *m4){ 
union REGS inregs,outregs; 
inregs.x.ax=*m1; 
inregs.x.bx=*m2; 
inregs.x.cx=*m3; 
inregs.x.dx=*m4; 
int86(0x33,&amt;inregs,&amt;outregs); 
*m1=outregs.x.ax; 
*m2=outregs.x.bx; 
*m3=outregs.x.cx; 
*m4=outregs.x.dx; 
} 
int resetmouse(void){ 
int m1,m2,m3,m4; 
m1=0; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
return(m1); 
} 
void showmouse(void){ 
int m1,m2,m3,m4; 
m1=1; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
} 
void offmouse(void){ 
int m1,m2,m3,m4; 
m1=2; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
} 
void movemouse(int x,int y){ 
int m1,m2; 
m1=4; 
mouse(&amt;m1,&amt;m2,&amt;x,&amt;y); 
} 
void getmousecorrds(int *x,int *y){ 
int m1,m2; 
m1=3; 
mouse(&amt;m1,&amt;m2,x,y); 
} 
void setmousemaxx(int ls,int le){ 
int m1,m2; 
m1=7; 
mouse(&amt;m1,&amt;m2,&amt;ls,&amt;le); 
} 
void setmousemaxy(int us,int ue){ 
int m1,m2; 
m1=8; 
mouse(&amt;m1,&amt;m2,&amt;us,&amt;ue); 
} 
void mousespeed(int vx,int vy){ 
_CX=vx; 
_DX=vy; 
_AX=0x0f; 
geninterrupt(0x33); 
} 
int rightpress(){ /*检测右键是否按下,是1,否0。*/ 
int m1,m2,m3,m4; 
m1=3; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
return(m2&amt;2); 
} 
int leftpress(){ /*检测左键,同上。*/ 
int m1,m2,m3,m4; 
m1=3; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
return(m2&amt;1); 
} 
int mouserelease(){ /*检测按键是否释放,是1,否0.*/ 
int m1,m2,m3,m4; 
m1=6; 
mouse(&amt;m1,&amt;m2,&amt;m3,&amt;m4); 
return(m2); 
} 
int mouseinbox(int left,int right,int top,int bottom){ 
if(mousex>=left&amt;&amt;mousex<=right&amt;&amt;mousey>=top&amt;&amt;mousey<=bottom) 
return(1); 
else 
return(0); 
} 
void UpdateMouse(void){ 
int x1,y1; 
getmousecorrds(&amt;x1,&amt;y1); 
if((x1!=mousex)||(y1!=mousey)) 
{ 
MouseOff(); 
mousex=x1;mousey=y1; 
MouseOn(mousex,mousey); 
} 
} 


⌨️ 快捷键说明

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