没有合适的资源?快使用搜索试试~ 我知道了~
基于Visual C++ 2010开发Windows7应用-开发多点触控MFC应用程序.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 176 浏览量
2021-10-10
14:40:50
上传
评论
收藏 52KB DOC 举报
温馨提示
试读
18页
基于Visual C++ 2010开发Windows7应用-开发多点触控MFC应用程序.doc
资源推荐
资源详情
资源评论
基于 Visual C++ 2010 开发 Windows7 应用-开发多点触控 MFC 应用程序 收藏 此文于 2010-
05-05 被推荐到 CSDN 首页
当下电脑变得越来越智能化,越来越无所不能,触摸屏的普及只是时间问题了。 虽然
鼠标和键盘不会很快就离开人们的视野,毕竟人们使用鼠标跟键盘已经成为一种习惯,但
是处理信息或者说操作电脑的其他方法也层出不穷——比方触控技术。从硬件技术的角度
来讲,触控技术是可行的,随着最新一代的触摸屏技术,接触技术现在已经存在,如今
Web 开发人员可以利用 Silverlight 3 提供多点触摸功能。可惜的是,只有 Windows 7 同时支
持 Silverlight 和多点触摸能力。这个因素大大制约了这部分功能的运用和推广,不过如果
多点触摸继续流行开来的话,情况会有所改变的,不过现在 Windows 7 为触摸屏技术提供
了发挥的软件空间,Windows 7 让屏幕触控技术成为可能。
借助 Windows 7 和触摸感应屏幕,您只需使用手指即可在电脑上翻阅在线报纸,翻阅
相册,拖拽文件和文件夹。 多年来在 Windows 中早已开始采用触控技术。Windows 7 进一
步将其扩展到电脑的每个角落。“开始”菜单和任务栏现在都采用了加大显示、易于手指触
摸的图标。常用的 Windows 7 程序也都可以执行触摸操作。您甚至可以在“画图”中使用手
指来画图!
Windows 触控功能还可以识别多点触控(使用适当的监视器)。是否需要缩小图片将手
指捏在一起即可。是否要用鼠标右键单击某项内容?用一个手指触及该内容,并用第二个手
指点击屏幕即可。Windows 触控功能仅在 Windows 7 的家庭高级版、专业版和旗舰版中提
供。
什么是触控操作呢?触控指 Windows 允许你使用手指直接与电脑进行交互的方式。与
使用鼠标、键盘或手写笔相比,触摸更加方便、自然、具有吸引力。也更符合人们日常的
交流习惯。而 Windows 7 中引入了全新的多点触摸的概念。多点触摸又称多点触控,简而
言之可以理解为一个屏幕多点操作。多点触摸不但是两个点或者几个点同时应用到屏幕上
这么一点点便利,由于是多点触摸,所以他能感应到手指滑动的快慢以及力度(力度用触摸
点的多少转换来实现),从而操作系统应用起来更加人性化。传统的触控屏幕一次只能判断
一个触控点,假设同时有两个以上的点被触碰,就不能做出正确反响,或者说反响混乱了
多重触控的任务可以分解为两个方面的工作,一是同时采集多点信号,二是对每路信号的
意义进行判断,也就是所谓的手势识别。最早在 Apple 公司的 iPhone 上应用。多点触摸技
术是一项划时代的输入方式。可以设想随着全息投影的发展,完全有可能实现屏幕在空中
投影,而用户直接在投影中触控电脑,科幻电影中的场景将会变成现实。
下面我们来看一段关于用手玩转 win7 触摸屏多点触摸屏电脑,现在您是不是被这种绚
丽界面所吸引,被这种便捷而有趣的操作所震撼?
我们自己打造的程序里面如何使用多点触摸技术呢,就是让我们的程序也具有此种多点
触摸功能,用手就可以玩转我们的应用程序呢?
好了,不多说了,下面我用实例来讲解这些功能实现:
首先:我们基于 MFC 新建一个简单窗体工程,如下列图所示:
several group number, then with b ± a, =c,c is is methyl b two vercal box between of accurate size. Per-2~3 measurement, such as proceeds of c values are equal and equal to the design value, then the vercal installaon accurate. For example a, b, and c valueswhile on horizontal vercal errors for measurement, General in iron angle code bit at measurement level points grid errors, speci&c method is from baseline to methyl vercal box center line distance for a,, to b vercal box distance for b, list can
measured
单击"finish"完成工程创建
接下来我们向应用程序添加触控支持,表现以下两点:
1.我们正在构建的应用程序需要支持触控的硬件,因此我们需要在应用程序中查看这一点。
2.在 Scratchpad.cpp 中,在 CScratchPadApp::InitInstance(): 后添加以下检查代码:
view plaincopy to clipboardprint?
01.BYTE digitizerStatus = (BYTE) GetSystemMetrics(SM_DIGITIZER);
02.
03.if ((digitizerStatus & (0x80 + 0x40)) == 0)
04.//堆栈就绪+多触点
05.
06.{
07.
08.AfxMessageBox(L"No touch input is currently available.");
09.
10.return false;
11.
12.}
13.
14.
15.
16.BYTE nInputs = (BYTE) GetSystemMetrics(SM_MAXIMUMTOUCHES);
17.
18.
19.
20.CString str;
21.
23.
24.AfxMessageBox(str);
25.
26.
27.
28.return true;
BYTE digitizerStatus = (BYTE) GetSystemMetrics(SM_DIGITIZER);
if ((digitizerStatus & (0x80 + 0x40)) == 0)
several group number, then with b ± a, =c,c is is methyl b two vercal box between of accurate size. Per-2~3 measurement, such as proceeds of c values are equal and equal to the design value, then the vercal installaon accurate. For example a, b, and c valueswhile on horizontal vercal errors for measurement, General in iron angle code bit at measurement level points grid errors, speci&c method is from baseline to methyl vercal box center line distance for a,, to b vercal box distance for b, list can
measured
//堆栈就绪+多触点
{
AfxMessageBox(L"No touch input is currently available.");
return false;
}
BYTE nInputs = (BYTE) GetSystemMetrics(SM_MAXIMUMTOUCHES);
CString str;
str.Format(L"Touch input available with %d touch points.", nInputs);
AfxMessageBox(str);
return true;
3. 您可以看到,除了查看触控可用性和就绪情况以外,我们还可以发现硬件支持的触控输
入数量。
4. 编译并运行。
5. 根据机器上触控输入的数量,您应该看到类似下列图的输出:
6. 为 了 注 册 应 用 程 序 客 户 端 视 图 窗 口 来 接 收 触 控 消 息 , 我 们 需 要 调 用 MFC 函 数
CWnd::RegisterTouchWindow()。我们将在视图创建之后执行该操作,即在 OnCreate() 事件
处理程序中完成。
切换到 Class View 并选择 CChildView 类。
在 Properties 页面中,转到 Message 属性表并导航到 WM_CREATE,然后从下拉框中添加
学习文档 仅供参考
OnCreate() 消息处理程序:
7. 在 CChildView::OnCreate() 处理程序中添加以下代码,注册视图窗口的触控输入:
view plaincopy to clipboardprint?
01.if (!RegisterTouchWindow())
02.
03. {
04.
05.ASSERT(FALSE);
06.
07. }
if (!RegisterTouchWindow())
{
ASSERT(FALSE);
}
注意:调用 CWnd::RegisterTouchWindow() 注册〔和注销〕窗口,使其具有触控功能,允
许接收低级 WM_TOUCH 消息。
8. 因为我们注册了视图来接收触控输入,我们必须重写接收每个触控消息的处理程序:
CWnd::OnTouchInput()。
该处理程序 接收来自 Windows Touch 的 单个输入,并在应 用程序处理该消息时返 回
TRUE;否则返回 FALSE。
9.在 ChildView.h 中添加该方法声明:
view plaincopy to clipboardprint?
01.// 重写
02.
03.protected:
04.
05.virtual BOOL OnTouchInput(CPoint pt, int nInputNumber, int nInputsCount, PTOUCHINPUT
pInput);
// 重写
several group number, then with b ± a, =c,c is is methyl b two vercal box between of accurate size. Per-2~3 measurement, such as proceeds of c values are equal and equal to the design value, then the vercal installaon accurate. For example a, b, and c valueswhile on horizontal vercal errors for measurement, General in iron angle code bit at measurement level points grid errors, speci&c method is from baseline to methyl vercal box center line distance for a,, to b vercal box distance for b, list can
measured
剩余17页未读,继续阅读
资源评论
学习使人快乐张
- 粉丝: 14
- 资源: 6万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功