本文为作者原创,转载请注明出处
一般情况下,Windows平台下可以使用mouse_event函数实现鼠标操作
我们这里使用更新后的SendInput函数
bool MouseEventpos(InputData data)
{
INPUT MouseData = { 0 };
MouseData.type = INPUT_MOUSE;
MOUSEINPUT &MouseInput = MouseData.mi;
MouseInput.time = NULL;
MouseInput.dwExtraInfo = NULL;
if (true)
{
MouseInput.dwFlags |= MOUSEEVENTF_ABSOLUTE;
MouseInput.dx = ((x * 1.0f) / (m_width * 1.0f)) * 65535;
MouseInput.dy = ((y * 1.0f) / (m_height * 1.0f)) * 65535;
}
else
{
}
if (data.input_data() == MOUSE_WHEEL)
{
MouseInput.dwFlags |= MOUSEEVENTF_WHEEL;
MouseInput.mouseData = data.value();
}
else
{
switch (data.inputstate())
{
case DEFAULT:
{
MouseInput.dwFlags |= MOUSEEVENTF_MOVE;
break;
}
case STATE_DOWN:
{
if ((int)BUTTON_LEFT == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_LEFTDOWN;
}
else if ((int)BUTTON_MIDDLE == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_MIDDLEDOWN;
}
else if ((int)BUTTON_RIGHT == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_RIGHTDOWN;
}
break;
}
case STATE_UP:
{
if ((int)BUTTON_LEFT == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_LEFTUP;
}
else if ((int)BUTTON_MIDDLE == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_MIDDLEUP;
}
else if ((int)BUTTON_RIGHT == data.input_data())
{
MouseInput.dwFlags |= MOUSEEVENTF_RIGHTUP;
}
break;
}
default:
break;
}
}
SendInput(1, &MouseData, sizeof(MouseData));
return true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)