鼠标输入:MOUSEEVENTF_MOVE移动不根据dx,dy
mouse input: MOUSEEVENTF_MOVE moving not according to dx, dy
在下面的代码中,我的鼠标光标应该在屏幕上设置为(100100)。然而,事实证明光标已移动到(2,1)。
当未设置MOUSEEVENTF_ABSOLUTE
时,我预计鼠标会分别向右和向下移动100个像素。而结果是它从(35265)移动到(670383)。
INPUT Input[1];
ZeroMemory(Input, sizeof(INPUT) * 1);
Input[0].type = INPUT_MOUSE;
Input[0].mi.dx = 100;
Input[0].mi.dy = 100;
Input[0].mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
SendInput(1, Input, sizeof(INPUT));
我读过的帖子:
我意识到还有另一篇关于类似情况的帖子。但我怀疑内存泄漏是否是答案,因为我使用cout
来检查Input[0].mi.dx
和Input[0].mi.dy
的值,并且它们正是100
。
根据这里投票最多的帖子的解决方案,使用因子来修改xy值。即便如此,结果也不符合您的输入。答案并没有解释为什么需要使用一个因素。
我的问题:
1) 使用SetCursorPos()
在Windows中移动光标的准确方法是什么?(我不想使用它是有原因的)
2) 有人知道MOUSEEVENTF_MOVE
不合理运动背后的原因吗?
在QT中如何找到鼠标位置:我目前正在制作一个大量使用QMouseMoveEvent的程序。
因此,一步一步地,让我们创建一个新的项目,使用一个空白的MainMenu表单。点击一个新标签,这样我们就可以看到X和Y坐标的变化。
这适用于QT创建一个新函数并将其称为
void MainWindow::mouseMoveEvent(QMouseEvent*事件),请确保也将其添加到.h中!
然后使用事件变量创建一个指向它的指针。QPoint pos=event->pos();
然后执行位置x()、位置y();把它们放进你的标签/输出中,我们就开始了!
然后用它们来做你想做的事。
我希望这是你想要的答案!
如果你需要更多帮助,我可以将你链接到我的GitHub回购,你可以查看我在X Y职位和Lat-Lon to X Y方面的一些工作;
同样作为最后一件事,如果你想做Lat Lon到X Y,这是
X是当前鼠标的X坐标;Y是当前鼠标Y坐标;
double lat=(y*180)/("场景像素高度")-90
double-lon=(x*360)/("场景像素宽度")-180
最后一件事是在QT中设置位置,只需使用
QCursor my_cursor;my_cursor.setPos(X,Y);
不确定是否获得Dx/Dy,但这是一个小例子,可以帮助您了解更多信息。无论如何,我希望我所做的对有帮助
您是否考虑到X/Y坐标从左上角的0,0开始?
你在用什么Complier?当我们不知道需要使用什么库来解决这个问题时,很难解决这个问题。
因为如果这是在QT,这是一个简单的解决方案。但我不太确定是否要在MFC或其他C++GUI中使用它。
更多细节会很好:)-回复我,我会再看看你的问题
脑海中浮现出几件事:
int CURSOR_X;
int CURSOR_Y;
int mousex;
int mousey;
CURSOR_X = 100;
CURSOR_Y = 100;
SetCursorPos(CURSOR_X, CURSOR_Y);
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_MOVE, 100, mousex, mousey, 100);
- 从三角形3D顶点确定DZ/DX值
- 呼叫IASetVerteXbuffers会使以后对设备上下文的所有呼叫造成访问违规(DX 11)
- 为何选择值{1,1,1,0,-1,-1,-1,0,1}和{0,1,1,1,1,0,-1,-1,-1}]和dy [dir]
- 顶点开关DX
- 在运行时从OpenGL上下文切换到D3D/DX上下文(或其他上下文)
- 在有限差分法中使用的最佳ε/dx值是多少
- 如何使用createProcess()启动DX应用程序
- 鼠标输入:MOUSEEVENTF_MOVE移动不根据dx,dy
- INPUT_MOUSE:鼠标不随给定的dx/dy值移动
- 初始化DX时发生c++访问冲突
- 如何使用opengl或dx从网格中生成深度(高度)图像
- InstanceBuffer在DX 11_0中不起作用
- 这是做什么的?如果(无符号(dx) & lt;无符号(大小))
- 使用DX缩放对象
- 夏普DX:未找到方法 'get_BufferPointer()'
- 一个针对GNU++98 / libstdc++编译的应用程序可以链接到针对c++ 11 / libstdc++构建的dy
- 如何将 HWND 的位图 X, Y 转换为鼠标事件 dX, dY?
- 开发插件:DX或VST