
我估计你分数给的在高也没人回答。来个这样的代码太麻烦了。而且百度金币用处也不大。
不过,我可以写几个鼠标函数给你参考一下。
首先了解一下鼠标的中断。
_AX=0x01
表示显示光标
_AX=0x02
停止显示光标
_AX=0x03
读取光标位置与案件
_AX=0x04
设置光标位置
所以啊。根据这四个中断,有以下几个函数
----------------------------------------------------
void
MouseOn(void)//鼠标光标显示
{
_AX
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
MouseOff(void)//鼠标光标隐藏
{
_AX
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
MouseSetXY(int
x,int
y)//设置当前位置
{
_CX
=
x,
_CD
=
y;
_AX
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
LeftPress(void)//鼠标左键按下
{
_AX
=
0x33;
geninterrupt(0x33);
return(_BX&1);
}
-----------------------------------------------------
鼠标右键的应该也会了吧。不过要return(_BX&2);
-----------------------------------------------------
void
MouseGetXY(void)//得到当前位置
{
_AX
=
0x33;
geninterrupt(0x33);
MouseX
=
_CX;
MouseY
=
_DX;
}
---------------------------------------------------------------
最好要复制粘贴,打字打得手疼。
用C语言在Linux下获取鼠标光标的相对位置代码分享:
#include <stdioh>
#include <stdlibh>
#include <linux/inputh>
#include <fcntlh>
#include <sys/timeh>
#include <sys/typesh>
#include <sys/stath>
#include <unistdh>
int main(int argc,char argv)
{
int fd, retval;
char buf[6];
fd_set readfds;
struct timeval tv;
//fd = open("/dev/input/mice", O_RDONLY);
if(( fd = open("/dev/input/mice", O_RDONLY))<0)
{
printf("Failed to open \"/dev/input/mice\"\n");
exit(1);
}
else
{
printf("open \"/dev/input/mice\" successfuly\n");
}
while(1)
{
tvtv_sec = 5;
tvtv_usec = 0;
FD_ZERO(&readfds);
FD_SET(fd, &readfds);
获取鼠标点所在窗口的坐标或相对屏幕的坐标,然后你就可以做自己想做的了
using System;
using SystemCollectionsGeneric;
using SystemText;
namespace MouseEvent
{
class Program
{
[SystemRuntimeInteropServicesDllImport("user32dll")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_MOVE = 0x0001;
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
const int MOUSEEVENTF_LEFTUP = 0x0004;
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
const int MOUSEEVENTF_RIGHTUP = 0x0010;
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
static void Main(string[] args)
{
for (int i = 0; i < 5; i++)
{
SystemThreadingThreadSleep(1000);
//鼠标移动,坐标x,坐标y,只设置前三个参数就够了
mouse_event(MOUSEEVENTF_MOVE, 10, 0, 0, 0);
//鼠标左键点击
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
}
}
}
OnMouseMove的后一个参数就是鼠标的当前位置
void CTest1View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CView::OnMouseMove(nFlags, point);
CPoint MousePosition = point;
}
以上就是关于c语言 获取鼠标键盘事件全部的内容,包括:c语言 获取鼠标键盘事件、我怎样才能得到绝对鼠标位置在Linux下用C、C#C++如何确定鼠标点击的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)