假设的应用场景:

当hook住鼠标按钮被按下的事件时, 要先执行鼠标按钮被按下的自定义处理,再转到处理鼠标被按下的事件.

假设自定义处理为: 将鼠标光标所在的按钮禁止和隐藏.

实现流程:

* 得到鼠标光标所在位置的子窗体句柄, 判断该子窗体(窗口类名,窗口文本, 窗口风格...)是否是我们要处理的按钮.

* 如果是要处理的按钮, 再判断该鼠标是按下还是弹出菜单, 如果鼠标为按下, 才去执行自定义处理.

这时遇到的问题是, 用户有可能交换了鼠标的左右键. 如果没交换鼠标左右键, 鼠标左键是按下的动作, 鼠标右键是弹出菜单.

在msdn上有个例子,可以解决"鼠标左右键是否已经交换"的问题~

[cpp] view plain copy print ?
  1. /// @file       testMouseSwap.cpp
  2. /// @brief      判断鼠标键是否被用户设置成"左右键交换"
  3. #include "stdafx.h"
  4. #include <Windows.h>
  5. #include <tchar.h>
  6. /// @fn         IsMouseSwap
  7. /// @brief      测试鼠标左右键是否已经交换
  8. /// @param      void
  9. /// @return     boolen, true = 鼠标左右键已经交换, false = 鼠标左右键没有交换
  10. /// @note       如果鼠标左右键没有交换, 鼠标左键是按下, 鼠标右键是弹出菜单
  11. bool    IsMouseSwap();
  12. int _tmain(int argc, _TCHAR* argv[])
  13. {
  14. _tprintf(L"IsMouseSwap = %s\n", IsMouseSwap() ? L"TRUE" : L"FALSE");
  15. /** operating results
  16. IsMouseSwap = FALSE
  17. */
  18. /// @note 交换"鼠标左右键"之后的实验已经做过, IsMouseSwap()有效
  19. getchar();
  20. return 0;
  21. }
  22. bool    IsMouseSwap()
  23. {
  24. int iRc             =   0;
  25. iRc = GetSystemMetrics(SM_MOUSEPRESENT);
  26. if(0 == iRc)
  27. return false;   ///< 鼠标没安装
  28. iRc = GetSystemMetrics(SM_SWAPBUTTON);
  29. return (0 == iRc) ? false : true;
  30. }

检测鼠标按钮(左右键)是否交换相关推荐

  1. 【原】简单的鼠标切换左右键(java版)

    简单的鼠标切换左右键(java版) 0. 写在最前面 客户需要一个能切换左右键的小功能满足使用需要. 具体需要如下: 我需要一个独立运行的窗口,在其中输入数字x,按下"转换"按钮后 ...

  2. office 2007 鼠标、左右键失效

    安装了office2003,升级到Office2007后,先打开一个word文件,切换出去,再切回来,鼠标失效,左右键在编辑区不能用. 网上搜索,找到原因是由于PowerDesigner12插件造成. ...

  3. VC++交换鼠标左右键

    MFC界面设计两个Button,一个Static Text: 首先应检测是否有鼠标或者鼠标按键是否已交换,类中声明IsMouseButtonSwap()函数: 注意,笔记本电脑的触摸板也会被系统认为是 ...

  4. Mac鼠标左右键轻松互换

    通常我们使用鼠标都是以左键为主键,但是也有一些人习惯以右键为主.那如何对左右键进行交换呢?今天小编为大家介绍一个轻松交换左右键的技巧,让你不在为不习惯左键而烦恼! 步骤1:单击菜单栏上的Apple徽标 ...

  5. Win11怎么进行左右键对调?

    有些用户发现电脑的鼠标左右键对调了,想要改回去:有的朋友因为自己是手势习惯问题,想要把鼠标的左右键互换一下,方便自己进行操作.那么应该如何进行更改呢?还不清楚的小伙伴们不用担心,快跟着小编一起来看看吧 ...

  6. C语言恶作剧(1):交换鼠标左右键

    # include <windows.h>int main(void) { SwapMouseButton(1);//反转鼠标左右键/*//(解决方法) SwapMouseButton(0 ...

  7. css 按钮固定在右上交_如何在iPad上交换左右鼠标按钮

    css 按钮固定在右上交 With a mouse, you can "right-click" on your iPad-Apple calls this a "Sec ...

  8. Windows10专业版任务栏右下角按钮左键无效右键有效的问题的解决

    我的电脑是当时从Windows7旗舰版自动升级到Windows10专业版的.前天,电脑开机时想要调节一下音量,发现任务栏右下角的那一群小图标左键全部失灵,把鼠标移动到图标上面有文字显示,右键点击也能够 ...

  9. php左键点改成左键点,window_win10怎么将鼠标左键设置为主键?win10鼠标左右键互换的技巧,当我们的鼠标使用一段时间之 - phpStudy...

    win10怎么将鼠标左键设置为主键?win10鼠标左右键互换的技巧 当我们的鼠标使用一段时间之后,会由于左键经常按压而导致老化或者损坏,而对于突然间的损坏,又没有其他可以替代的鼠标时候,就需要对鼠标左 ...

最新文章

  1. android8.1内核编译,Android8.1.0安卓源码编译
  2. vue2.0 配置 选项 属性 方法 事件 ——速查
  3. RNN(Recurrent Neural Network)的几个难点
  4. Linux系统资源监控--linux命令、nmon和spotlight
  5. [react] render在什么时候会被触发?
  6. dazhilu飞鸽传书 2013 官方网站
  7. 解决ng界面长表达式(ui-set)
  8. 机器学习--线性回归(LinearRegression)
  9. choices相当于实现一个简化版的外键
  10. JQuery封装的ajax方法
  11. win桌面显示html,win10怎么把ie图标放桌面上 win10桌面添加ie浏览器图标的方法
  12. 解决NLPIR汉语分词系统init failed问题
  13. SSD_OneStage
  14. 如何通过路由器部署IPv6环境(上篇)
  15. 计算机优质书籍搜集(持续更新)
  16. ulpfec,flexFec,Pro-MPEG cop3协议对比
  17. ubuntu添加并查看 用户组和用户
  18. 9-2 time类的加工
  19. 数据挖掘概念与技术13--BUC
  20. mobl:针对移动Web开发的“.NET研究”DSL

热门文章

  1. VR多人协同演示(2)
  2. android 复制 粘贴 功能实现
  3. java 鱼刺图_Java JSR-133 因果关系中 6.3.1的例子为什么会出现r1==r2==1呢?
  4. 建设成为世界第五大经济体 破解阿里云生态密码
  5. 头戴式耳机适合运动吗、五款最适合运动的耳机分享
  6. 珍藏已久的6个资源网站,每天让你不愁找不到资源,你值得拥有
  7. pytorch手动实现滑动窗口操作,论fold和unfold函数的使用
  8. js将图片转换成base64
  9. java getdocument_getDocument
  10. ELK 安装Beat