Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中鼠标点击坐标的获取_C_Mouse_Dos_Turbo C - Fatal编程技术网

C语言中鼠标点击坐标的获取

C语言中鼠标点击坐标的获取,c,mouse,dos,turbo-c,C,Mouse,Dos,Turbo C,我在google上找到了这个头文件,用于在C程序中执行鼠标相关事件,但我不知道int86union REGS I,o以及C中可用的其他int86类型函数是什么?我正在使用windows操作系统和Turbo C #include<conio.h> #include<stdio.h> #include<dos.h> initmouse(); void showmouseptr(); void restrictmousept(int,int,int,int); v

我在google上找到了这个头文件,用于在C程序中执行鼠标相关事件,但我不知道
int86
union REGS I,o以及C中可用的其他
int86
类型函数是什么?我正在使用windows操作系统和Turbo C

#include<conio.h>
#include<stdio.h>
#include<dos.h>

initmouse();
void showmouseptr();
void restrictmousept(int,int,int,int);
void getmousepos(int *,int *,int *);
void hidemouseptr();

union REGS i,o;
initmouse()
{
     i.x.ax=0;
     int86(0x33,&i,&o);
     return(o.x.ax);
}
void showmouseptr()
{
   i.x.ax=1;
   int86(0x33,&i,&o);
}
void restrictmouseptr(int x1,int y1,int x2,int y2)
{
   i.x.ax=7;
   i.x.cx=x1;
   i.x.dx=x2;
   int86(0x33,&i,&o);
   i.x.ax=8;
   i.x.cx=y1;
   i.x.dx=y2;
   int86(0x33,&i,&o);
}
void getmousepos(int *button,int *x,int *y)
{
  i.x.ax=3;
  int86(0x33,&i,&o);
  *button=o.x.bx;
  *x=o.x.cx;
  *y=o.x.dx;
}

void hidemouseptr()
{
   i.x.ax=2;
   int86(0x33,&i,&o);
}
#包括
#包括
#包括
初始化鼠标();
void showmouseptr();
无效限制mousept(int,int,int,int);
void getmousepos(int*,int*,int*);
void hidemouseptr();
工会条例i、o;
initmouse()
{
i、 x.ax=0;
int86(0x33、i和o);
收益率(o.x.ax);
}
void showmouseptr()
{
i、 x.ax=1;
int86(0x33、i和o);
}
无效限制鼠标接收器(int x1、int y1、int x2、int y2)
{
i、 x.ax=7;
i、 x.cx=x1;
i、 x.dx=x2;
int86(0x33、i和o);
i、 x.ax=8;
i、 x.cx=y1;
i、 x.dx=y2;
int86(0x33、i和o);
}
void getmousepos(int*按钮、int*x、int*y)
{
i、 x.ax=3;
int86(0x33、i和o);
*按钮=o.x.bx;
*x=o.x.cx;
*y=o.x.dx;
}
void hidemouseptr()
{
i、 x.ax=2;
int86(0x33、i和o);
}

int86函数调用DOS鼠标中断33h。dos中断特定于msdos操作系统,因此您的代码只能在msdos下使用。”union REGS'是用作DOS中断参数的输入和输出寄存器。DOS中断类似于其他操作系统中的系统调用。

int86函数调用DOS鼠标中断33h。dos中断特定于msdos操作系统,因此您的代码只能在msdos下使用。”union REGS'是用作DOS中断参数的输入和输出寄存器。DOS中断类似于其他操作系统中的系统调用。

这看起来像是MS-DOS的旧代码,用于使用x86中断调用系统函数以获取鼠标坐标。如果这段代码仍然在任何现代计算机的命令提示符下工作,我会感到惊讶。事实上,顶部的头文件(包括dos.h)会泄露这一点

in86()是在DOS模式下“中断”CPU的方式。这是现代操作系统中调用函数的一种方式。更多信息请点击此处:

union是C中定义数据的一种方法,这些数据可以以不同的方式访问。更多信息请点击此处:


现在还不清楚你想做什么,更不用说在什么操作系统下运行了。您可能希望首先选择一种语言(假设您使用的是Windows,C#可能是一个好的开始),然后查看WinForms的基类库以了解如何响应鼠标事件。WinForms上有一些很好的教程,可以教您如何响应鼠标。

这看起来像是MS-DOS的旧代码,可以使用x86中断调用系统函数来获取鼠标坐标。如果这段代码仍然在任何现代计算机的命令提示符下工作,我会感到惊讶。事实上,顶部的头文件(包括dos.h)会泄露这一点

in86()是在DOS模式下“中断”CPU的方式。这是现代操作系统中调用函数的一种方式。更多信息请点击此处:

union是C中定义数据的一种方法,这些数据可以以不同的方式访问。更多信息请点击此处:


现在还不清楚你想做什么,更不用说在什么操作系统下运行了。您可能希望首先选择一种语言(假设您使用的是Windows,C#可能是一个好的开始),然后查看WinForms的基类库以了解如何响应鼠标事件。WinForms上有一些很好的教程,可以教你如何响应鼠标。

放弃这些代码:这是旧的16位DOS,可能不是你想要的

看来你对C语言还是比较陌生的。在这种情况下,更好的建议是学好C语言;查看站点周围的良好学习参考资料。Dennis Ritchie和Brian Kernighan的“C编程语言”是一个很好的起点

话虽如此,C语言中没有
int86
函数。这些是Borland Turbo C扩展。这就是人们在DOS中操纵鼠标的方式,但现在情况不同了

请注意,C语言基本上只是一种编程语言。它旨在表示算法。然而,C语言标准也为您提供了一个标准库:一组预定义的类型、函数和宏,您可以使用它们来节省时间和可移植性。这个库处理一些基本功能,而鼠标输入处理不是其中之一

换句话说,在学习了C之后,您将准备好处理特定操作系统的API。这是必需的,因为C标准库不提供操作任何类型输入设备的方法。您还将学习现代操作系统中如何处理输入的一些基础知识。例如,要处理鼠标输入,您很可能需要创建一个窗口(或小部件)以接收鼠标事件——这意味着您必须阅读一些有关底层窗口API的信息


有一些库可以为您访问系统的API并消除差异,为您提供一种编程选择。不过,这与直接学习和使用系统的API没有什么不同,只是为了增强可移植性。

放弃该代码:它是旧的16位DOS,可能不是您想要的

看来你对C语言还是比较陌生的。在这种情况下,更好的建议是学好C语言;查看站点周围的良好学习参考资料。Dennis Ritchie和Brian Kernighan的“C编程语言”是一个很好的起点

话虽如此,C语言中没有
int86
函数。这些是Borland Turbo C扩展。这就是人们在DOS中操纵鼠标的方式,但现在情况不同了

请注意,C语言基本上只是一种编程语言。它旨在表示算法。但是,C语言标准还提供了一个标准库:一组预定义的类型、函数和宏,您可以使用它们来节省时间