Mouse For Winpad
Mouse For Winpad
用WIN10的平板模式玩游戏总会到一些兼容性问题,之前在推Re:LieF的时候就遇到了触屏不能像鼠标指针一样进行游戏,于是猜想一定是程序没进行标准化MFC的编程。于是自己写了一个假窗口模拟鼠标,传递鼠标消息给游戏程序来实现点击。
源码在 Link to (GitHub)[https://github.com/oplusx/MouseForWinPad]
开发思路
- WINDOWS系统下,窗口之间通过WM_MESSAGE消息进行信息传递
- 鼠标的移动和点击也是通过消息传递来实现的
- 每个窗口都有一个句柄的概念HWND
- 向某HWND传递WM_MESSAGE就是最简单那的模拟
实现方法
- 获取当前需要传递消息的窗口句柄
void CMouseForWinPadDlg::OnBnClickedSet()
{
RECT rect;
this->GetWindowRect(&rect);//利用当前窗口所在的位置取左上角往外偏移1像素位置的窗口
LONG x = rect.left - 1;
LONG y = rect.top - 1;
POINT testPoint;
CWnd* testWnd = WindowFromPoint(testPoint);
if (testWnd != NULL)
{
while (testWnd->GetParent() != NULL)
{
testWnd = testWnd->GetParent();
}
m_hTarget = testWnd->m_hWnd;//获得句柄
}
}
- 向窗口传递消息
LONG lParam = MAKELPARAM(m_lTargetX, m_lTargetY);//目标窗口左上角为零点,所生成的相对坐标
::SetCursorPos(m_lAbsoluteX, m_lAbsoluteY);//设置指针的绝对坐标
::SendMessage(m_hTarget, WM_MOUSEMOVE, 0, lParam);
::SendMessage(m_hTarget, WM_LBUTTONDOWN, 0, lParam);
::PostMessage(m_hTarget, WM_LBUTTONUP, 0, lParam);
写在最后
WIN10的触屏体验多少有些欠缺的哦,否则用WIN平板玩GAL还是非常舒适的,特别是躺在床上无脑戳戳戳。
Mouse For Winpad的更多相关文章
- 鼠标mouse事件冒泡处理
简单的鼠标移动事件: 进入 mouseenter:不冒泡 mouseover: 冒泡 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件 只有在鼠标指针穿过被选元素时,才会触发 m ...
- javascript code snippet -- Forwarding Mouse Events Through Layers
Anyone who has worked with web apps has likely created a masking element at some point, and the grea ...
- Mouse.OverrideCursor
介绍: 获取和设置整个应用程序的光标,WPF父元素将覆盖所有子元素的光标. WPF设置控件的光标: WPF 中每个光标通过一个System.Windows.Input.Cursor表示, 获取Curs ...
- mouse scrollings and zooming operations in linux & windows are opposite
mouse scrollings and zooming operations in linux & windows are opposite. windows中, 鼠标滚动的方向是: 查看页 ...
- ACM Greedy Mouse
Greedy Mouse 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 A fat mouse prepared M pounds of cat food,read ...
- Java基础之处理事件——选项按钮的鼠标监听器(Lottery 2 with mouse listener)
控制台程序. 定义监听器类有许多方式.下面把监听器类定义为单独的类MouseHandler: // Mouse event handler for a selection button import ...
- Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
Change the font size and weight of text items and push buttons on mouse hover in Oracle Forms. An ...
- I.MX6 linux Qt 同时支持Touch、mouse
/***************************************************************************** * I.MX6 linux Qt 同时支持 ...
- 通过Mouse Without Borders在多台机器上共享键盘鼠标
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:通过Mouse Without Borders在多台机器上共享键盘鼠标.
随机推荐
- 获取设备信息——获取客户端ip地址和mac地址
1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...
- 【转】Ext JS 集合1713个icon图标的CSS文件
原文:http://extjs.org.cn/node/715 由于最近在研究Extjs4.1.1,没想到Extjs没有自带的iconCls所使用的图标样式css,就是用那个写那个的,纠结了半天,网上 ...
- android Butter Knife 使用详解
Butter Knife github连接:https://github.com/JakeWharton/butterknife 本文使用的butterknife版本7.0.1 butterknife ...
- win7使用命令
osk 屏幕键盘 perfmon 性能监视器 PresentationSettings 演示设置 recdisc.exe 创建系统恢复光盘 regedt32 注册表编辑器 rekeywiz 加密文件系 ...
- 09 - JavaSE之线程
线程 线程的基本概念 线程是一个程序里面不同的执行路径. 进程与线程的区别 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销大. 线程可以看作轻量级的进程,同一类线程共享代码和数据空间 ...
- PMP备考指南之第一章:引论
本文已同步至 GitHub/Gitee/公众号,感兴趣的同学帮忙点波关注~ 第一章 引论 1."项目管理知识体系":应该包含所有行业.应用领域项目管理的具体知识.技能.方法和实践 ...
- AndroidStudio报错Software caused connection abort: recv failed
Software caused connection abort: recv failed 这个问题网上有一种说法 已知会导致这种异常的一个场景如下: 客户端和服务端建立tcp的短连接,每次客户端发送 ...
- springboot-4-整合fastjson
使用fastjson作为springboot的默认json解析, 原来使用的是jackson 1, 引入依赖 <dependencies> <dependency> <g ...
- Java中的四种引用
引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...
- WPF的ControlTemplate和DataTemplate简介
首先理清几个概念,Template.ControlTemplate.ContentTemplate.DataTemplate.ContentControl 这几个东西名字都差不多,意思感觉也接近,初次 ...