gpt4 book ai didi

c - 在C中获取鼠标点击的坐标

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:45 25 4
gpt4 key购买 nike

我在谷歌上找到了这个头文件来在 C 程序中执行与鼠标相关的事件,但我不知道 int86 union REGS i,o; 以及其他什么int86 C 中可用的类型函数?我正在使用 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);
}

最佳答案

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

in86() 是您在 DOS 模式下“中断”CPU 的方式。这是现代操作系统中调用函数的一种方式。更多信息在这里:http://wiki.answers.com/Q/What_is_the_INT86_function_in_C_programming

union 是 C 中定义数据的一种方法,可以通过不同的方式访问这些数据。更多信息:http://www.go4expert.com/forums/showthread.php?t=15 .

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

关于c - 在C中获取鼠标点击的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12920667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com