windows 7多点触摸开发
win7 触摸屏系统应用广泛,软件操作方便,功能强大,现以被很多硬件厂商应用。 我曾用一台装有win7 的汉王平板电脑进行了多点触摸软件的开发。
开发环境及条件:
1. 平板电脑+ win7触摸系统
2. 编译平台 win7+vs2010 。(我在xp上没有编译成功过,但win7+vs2010是可以编译成功的)
须要用到的函数:
1. 检測该系统有没有触摸硬件设备或是否就绪
BYTE digitizerStatus =(BYTE)GetSystemMetrics(SM_DIGITIZER);
if((digitizerStatus &(0x80 + 0x40)) == 0)
{
AfxMessageBox("没检測到多点触控设备或设备没有就绪");
}
2. 注冊接受触摸消息的窗体,使该窗体能接收WM_TOUCH消息
RegisterTouchWindow(hwnd,0)
3. 获取触摸点数,及该点的坐标信息
GetTouchInputInfo((HTOUCHINPUT)lParam,numInputs,ti,sizeof(TOUCHINPUT))
实例代码:
LRESULT CALLBACK WinProc1(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
LRESULT bRet;
if(uMsg==WM_GESTURE)
{
if(!g_bTouch)
{
RegisterTouchWindow(hwnd,0);
g_bTouch=TRUE;
}
}
if(uMsg==WM_TOUCH)
{
numInputs =(int)wParam;
TOUCHINPUT *ti= new TOUCHINPUT[numInputs];
if(GetTouchInputInfo((HTOUCHINPUT)lParam,numInputs,ti,sizeof(TOUCHINPUT)))
{
if(numInputs==1) //单向拖动
{
if(ti[0].dwFlags &TOUCHEVENTF_DOWN)
{
//记录按下坐标
}
if(ti[0].dwFlags &TOUCHEVENTF_DOWN)
{
//记录松开坐标
从坐标可以分析出拖动方向方位,可进行翻页等应用
}
}
else if(numInputs==2) //两点缩放
{
if((ti[0].dwFlags &TOUCHEVENTF_DOWN)&&(ti[1].dwFlags &TOUCHEVENTF_DOWN))
{
//获取按下去两点坐标
}
if((ti[0].dwFlags &TOUCHEVENTF_MOVE)&&(ti[1].dwFlags &TOUCHEVENTF_MOVE))
{
//拖动时两点坐标
}
if((ti[0].dwFlags &TOUCHEVENTF_UP)||(ti[1].dwFlags &TOUCHEVENTF_UP))
{
//松手时两点坐标。
//依据不同状态下的坐标进行相关应用。。。
}
}
CloseTouchInputHandle((HTOUCHINPUT)lParam);
delete []ti;
bRet=0;
}
}
windows 7多点触摸开发的更多相关文章
- WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序
原文:WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序 前面我讲了在win7下使用模拟器,进行调试模拟多点触摸,其实际开发中这样也比较麻烦.. 要拿几个鼠标. 所以更多的人会 买个触摸套 套 ...
- ios实例开发精品文章推荐(8.12)11个处理触摸事件和多点触摸的JS库
11个处理触摸事件和多点触摸的JS库 触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的Web应用,我们需要借助浏览器的触摸事件来实现. ...
- 移动web开发,12个触摸及多点触摸事件常用Js插件
如今移动互联网已经占据了主流地位,越来越多的开发者开始从桌面转向移动平台.与桌面开发不同的是,在移动领域中,不同的操作系统.大量不同屏幕尺寸的移动设备.触摸手势操作等,这都给开发者带来了一定的难度和挑 ...
- <WEB>平板_手机开发_13 个处理触摸事件和多点触摸的JS 库
触摸屏是现在所有智能手机的标配,还包括各种平板设备,而且很多桌面也慢慢在开始支持触摸操作.要开发支持触摸屏设备的 Web 应用,我们需要借助浏览器的触摸事件来实线. 下图是各种触摸事件说明: 本文我们 ...
- ios开发——实用技术篇Swift篇&多点触摸与手势识别
多点触摸与手势识别 //点击事件 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") self.vi ...
- 多点触摸(MT)协议(翻译)
参考: http://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt 转自:http://www.arm9home.ne ...
- 毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库
毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库 在线演示地址: http://m.yunxunmi.com/ 支持 IOS Android Ipad 等不同操作系统的手持或 ...
- Windows 8.1 Preview 开发资源汇总
Microsoft Build 2013开发者大会已经结束,从Session安排上看主要以Windows 8.1为主.我相信大家有已经或多或少的体验过Windows 8.1 Preview了,关于操作 ...
- 多点触摸画板(MultiTouchCanvas)
这是个简单的支持多点触摸的画板控件, 绘制功能基于WPF InkCanvas,也是我drawTool系列文章的开篇. 阅读该文章后可能产生一些问题: 1. 如果对生成的笔迹对象进行控制 如果要对生成的 ...
随机推荐
- 基于visual Studio2013解决C语言竞赛题之1015日期计算
题目 解决代码及点评 /* 15. 已知某年不是闰年,给定该年某一天的月份和日期, 求这一天是该年的第几天. */ #include <stdio.h> #incl ...
- yw info
浙江省公开招聘聘任制公务员公告 浙江省公开招聘聘任制公务员公告-浙江组织工作网-浙江在线 浙江省公开招聘聘任制公务员公告
- 一则 ORA-00471 处理方法
公司新上架一台服务到机房,硬件是IBM X3850 X5,硬件配置算是好的,内存有128GB.SA安装好系统--(版本sule 32bit)后通知我可以安装数据库了.忙活半天,安装好oracle 92 ...
- 调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment之我的解决方法
private class ViewPagerAdapter extends FragmentPagerAdapter { FragmentManager mFragmentManager; ...
- QUrl不同版本之间的坑
在项目中使用了native application + html的方式构建界面. 之前在4.8.4用QUrl直接加载相对路径一点问题都没有.但是切换到5.1编译之后却发现本地的html文件全部没有加载 ...
- 调用QQ截图
var SHExecInfo: SHELLEXECUTEINFO; begin //截图前隐藏主程序窗口 Form1.Hide; //等待截图执行完成 SHExecInfo.cbSize := siz ...
- 修改合同号的bapi
这个例子是在合同号中新增项目号: 1.先要读取该合同号的信息用一个BAPI BAPI_CONTRACT_GETDETAIL 2.调用修改合同号的BAPI. 代码如下: REPORT ztest_cla ...
- js之checkbox的代码全选/全不选,使用id获取元素,而不是name
每当有多个选项的时候,都会有一种想法是:全选,全不选,如果子选项有被选,父选项也得被选. 注意:这里是根据id来获取元素的,但是不能直接用getElementById,因为那只能返回一个,而不是集合. ...
- Cocos2dx中Plugin-X 在android下的整合
直接拉plugin-x中的jar包导入到Eclipse中就可以.用这么麻烦的工具干嘛.
- Ceph与GlusterFS等等(80篇博客)
http://blog.csdn.net/liuben/article/category/373751