sigmaccc
一般會員
發表:32 回覆:40 積分:14 註冊:2003-11-13
發送簡訊給我
|
將原始程式貼上,照理說滑鼠一次移動應為一個點。
但為何切至800x600模式後,一次卻是移動8個點呢?
麻煩大家指點了。感激不盡。 #include
#include
#include
#include
#include
#include
#include
#include
#include
#include <math.h>
#include
#include
#include
#include
#include
#include
#include
char Reset(void);
void Set_X_Range(int min,int max);
void Set_Y_Range(int min,int max);
void Get_XY(int *x,int *y);
void main(void)
{
int Mouse_X;
int Mouse_Y;
_AX=0x4f02; _BX=0x102; __int__(0x10);
Reset(); Set_X_Range(0,799); Set_Y_Range(0,599);
while(1)
{
Get_XY(&Mouse_X,&Mouse_Y);
gotoxy(1,1); printf("x=d y=d",Mouse_X,Mouse_Y);
if(kbhit()) break;
}
_AX=0x03; __int__(0x10);
}
char Reset(void)
{
union REGS ireg,oreg;
ireg.x.ax=0;
int86(0x33,&ireg,&oreg);
if(oreg.x.ax==0) return(0);
else return(1);
}
void Set_X_Range(int min,int max)
{
union REGS ireg;
ireg.x.ax=7;
ireg.x.cx=min;
ireg.x.dx=max;
int86(0x33,&ireg,&ireg);
}
void Set_Y_Range(int min,int max)
{
union REGS ireg;
ireg.x.ax=8;
ireg.x.cx=min;
ireg.x.dx=max;
int86(0x33,&ireg,&ireg);
}
void Get_XY(int *x,int *y)
{
union REGS ireg,oreg;
ireg.x.ax=3;
int86(0x33,&ireg,&oreg);
*x=oreg.x.cx;
*y=oreg.x.dx;
}
|