MFC-mouse_event鼠标事件

HWND hDlgWnd = ::FindWindow(_T("#32770"), _T("测试窗口")); if (hDlgWnd) { ::ShowWindow(hDlgWnd, SW_NORMAL); ::SetForegroundWindow(hDlgWnd); HWND hBtn = ::GetDlgItem(hDlgWnd, 0x3E8); //0x3E8 获取方法看:https://www.cnblogs.com/liming19680104/p/17198189.html CRect mRect; ::GetWindowRect(hBtn, &mRect); SetCursorPos(mRect.left + 3, mRect.top + 3); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//模拟鼠标动作 /* 参数1:DWORD dwFlags 鼠标动作标志。此参数可以是下列值的某种组合: MOUSEEVENTF_ABSOLUTE== 0x8000 dX和dY参数是绝对坐标。如果不设置,用相对数据:相对于上次位置的改动位置 MOUSEEVENTF_MOVE= 0x0001 鼠标移动 MOUSEEVENTF_LEFTDOWN = 0x0002; 模拟鼠标左键按下 MOUSEEVENTF_LEFTUP = 0x0004; 模拟鼠标左键抬起 MOUSEEVENTF_RIGHTDOWN = 0x0008; 模拟鼠标右键按下 MOUSEEVENTF_RIGHTUP = 0x0010; 模拟鼠标右键抬起 MOUSEEVENTF_MIDDLEDOWN = 0x0020; 模拟鼠标中键按下 MOUSEEVENTF_MIDDLEUP = 0x0040; 模拟鼠标中键抬起 MOUSEEVENTF_WHEEL 滚动鼠标轮,如果鼠标有一个滚轮。滚动的数量由dwData给出 参数2:DWORD dx 指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置 参数3:DWORD dy 指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置 参数4:DWORD dwData 如果dwFlags为MOUSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。 正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。 一个轮击定义为WHEEL_DELTA,即120。如果dwFlagsS不是MOUSEEVENTF_WHEEL,则dWData应为零 参数5:ULONG_PTR dwExtraInfo 指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessageExtraInfo来获得此附加信息 返回值:此函数无返回值 */ Sleep(100); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); }
测试窗口下载:
链接:https://pan.baidu.com/s/1s_5xvRpTUZtQDKPZ_INSmQ
提取码:6666


浙公网安备 33010602011771号