尝试在 borland C 中设置鼠标光标位置
Trying to set mouse cursor possition in borland C
我有一个程序可以将当前鼠标光标位置打印到控制台。
我想创建鼠标可以移动的范围。 ( 10,10) 和 (20,20)
到目前为止,这是我的代码:
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int x,y;
struct REGPACK reg;
void getmousepos()
{
reg.r_ax=0x03;
intr(0x33,®);
x=reg.r_cx/8;
y=reg.r_dx/8;
}
int main()
{
clrscr();
_setcursortype(_NOCURSOR);
reg.r_ax=0x01;
intr(0x33,®);
do
{
getmousepos();
printf(" ");
printf(" ");
window(1,1,79,24);
printf("Current position : %3d, %3d",x,y);
if(x < 10)
//set the x cursor possition to 10
if(x > 20)
//set the x cursor possition to 20
if(y < 10)
//set the y cursor to 10
if(y > 20)
//set the y cursor to 20
}while(!kbhit());
return 1;
}
有什么方法可以设置 reg.r_cx 和 reg.r_dx 以我想要的坐标注册,然后使用适当的中断调用 intr() 吗?
您的操作方式与在 getMouse() 中的操作方式相同:
void setMousePosition(int x, int y)
{
reg.r_ax=0x04;
reg.r_cx = x;
reg.r_dx = y;
intr(0x33,®);
}
您也可以使用范围限制器:
void setMouseHorizontalRange(int min, int max)
{
reg.r_ax=0x07;
reg.r_cx = min;
reg.r_dx = max;
intr(0x33,®);
}
void setMouseVerticalRange(int min, int max)
{
reg.r_ax=0x08;
reg.r_cx = min;
reg.r_dx = max;
intr(0x33,®);
}
我有一个程序可以将当前鼠标光标位置打印到控制台。
我想创建鼠标可以移动的范围。 ( 10,10) 和 (20,20)
到目前为止,这是我的代码:
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int x,y;
struct REGPACK reg;
void getmousepos()
{
reg.r_ax=0x03;
intr(0x33,®);
x=reg.r_cx/8;
y=reg.r_dx/8;
}
int main()
{
clrscr();
_setcursortype(_NOCURSOR);
reg.r_ax=0x01;
intr(0x33,®);
do
{
getmousepos();
printf(" ");
printf(" ");
window(1,1,79,24);
printf("Current position : %3d, %3d",x,y);
if(x < 10)
//set the x cursor possition to 10
if(x > 20)
//set the x cursor possition to 20
if(y < 10)
//set the y cursor to 10
if(y > 20)
//set the y cursor to 20
}while(!kbhit());
return 1;
}
有什么方法可以设置 reg.r_cx 和 reg.r_dx 以我想要的坐标注册,然后使用适当的中断调用 intr() 吗?
您的操作方式与在 getMouse() 中的操作方式相同:
void setMousePosition(int x, int y)
{
reg.r_ax=0x04;
reg.r_cx = x;
reg.r_dx = y;
intr(0x33,®);
}
您也可以使用范围限制器:
void setMouseHorizontalRange(int min, int max)
{
reg.r_ax=0x07;
reg.r_cx = min;
reg.r_dx = max;
intr(0x33,®);
}
void setMouseVerticalRange(int min, int max)
{
reg.r_ax=0x08;
reg.r_cx = min;
reg.r_dx = max;
intr(0x33,®);
}