Login dark
title: MFC-mouse_event鼠标事件
author: Love02xp
date: 2020-08-09 13:04:17
category: [编程代码]
tags: [VC6,代码,学习]

MFC-mouse_event鼠标事件

@TOC

_

正文

复制代码

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);

}

_

  • 原文链接
  • 注:知识搬运,供学习交流使用,侵联删!

_