MFC 对话框启用触控

2024-08-31 08:32
文章标签 mfc 对话框 启用 触控

本文主要是介绍MFC 对话框启用触控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先在OnInitDialog()中添加:

RegisterTouchWindow(TRUE, TWF_WANTPALM);

这个函数主要看第二个参数,及触控的类型的标志位,有两种:

TWF_FINETOUCH 设置 hWnd 为非合并触摸输入方式. 设置此标志将禁用防止手掌误触功能,从而减少获取WM_TOUCH 消息的延迟。如果您希望在用户触摸应用程序时尽可能快地做出响应,这样做非常有用。
TWF_WANTPALM 默认情况下,将启用防止手掌误触功能,并阻止将某些WM_TOUCH 消息发送到您的应用程序。如果您不希望接收因手掌接触引发的WM_TOUCH 消息,这样做非常有用。


之后就可以就接受触控消息了;

添加消息响应:

ON_MESSAGE(WM_TOUCH, OnTouch)

之后编写OnTouch函数:

头文件中:

LRESULT  OnTouch(WPARAM wParam, LPARAM lParam);

源文件中:

LRESULT  CIDPTouchMgrDlg::OnTouch(WPARAM wParam, LPARAM lParam)
{UINT numInputs = (UINT)wParam;TOUCHINPUT* TouchPts = new TOUCHINPUT[numInputs];if (TouchPts == NULL)return 0;//GetTouchInputInfo 获取信息   if (GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, TouchPts, sizeof(TOUCHINPUT))){for (UINT i = 0; i < numInputs; i++){TOUCHINPUT ptTouch = TouchPts[i];//触控信息//坐标点            int x = TOUCH_COORD_TO_PIXEL(ptTouch.x);int y = TOUCH_COORD_TO_PIXEL(ptTouch.y);...}}//注意这里,销毁数据CloseTouchInputHandle((HTOUCHINPUT)lParam);delete[] TouchPts;return 1;}




这篇关于MFC 对话框启用触控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123397

相关文章

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

控制台和MFC中内存泄露工具vld的使用

最近想检测下项目中内存泄露的情况,选中了vld这款。在查找使用方法的时候,大都是控制台下的示例,添加到main函数所在的源文件上。换成MFC就纠结了,不知道添加到哪里去。本文记录控制台和MFC中的使用vld过程。    vld资源:    1)、大家可以移步下边的网址下载:     http://vld.codeplex.com/releases/view/82311    2

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

PNG透明背景按钮的实现(MFC)

问题描述: 当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png" 开发环境为VS2010。 解决办法: 使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton

vue2实践:第一个非正规的自定义组件-动态表单对话框

前言 vue一个很重要的概念就是组件,作为一个没有经历过前几代前端开发的我来说,不太能理解它所带来的“进步”,但是,将它与后端c++、java类比,我感觉,组件就像是这些语言中的类和对象的概念,通过封装好的组件(类),可以通过挂载的方式,非常方便的调用其提供的功能,而不必重新写一遍实现逻辑。 我们常用的element UI就是由饿了么所提供的组件库,但是在项目开发中,我们可能还需要额外地定义一

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

两步搞定 Tomcat 下启用 https:// 访问

这个简单教程中我们通过简单的两步就可以在 Tomcat 7 中启用 HTTPS 访问。 第一步:创建 .keystore 文件 使用如下命令生成 .keystore 文件 windows : 1 %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA Linux: 1 $JAVA_HOM

几种MFC对话框的隐藏方法

修改CXXAPP中的InitInstance函数,将原来的模态对话框改为非模态对话框,及修改 [cpp]  view plain copy INT_PTR nResponse = dlg.DoModal();     为 [cpp]  view plain copy dlg.Create(CModalHideDlg::IDD);

030集——自动弹出对话框、选择文件并播放wav音频文件(winform窗体)——C#学习笔记

如图所示,效果如下: 步骤如下: 新建一个winform窗体,双击界面,进入代码区: 复制(下面代码中命名空间内的代码)到(你的命名空间下),运行。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Draw

MFC首先要知道的--程序执行顺序

MFC的程序执行顺序 很多刚学MFC的人都会被MFC给弄的晕头转向。以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如何开始运行的呢?到底MFC有没有遵从最基本的C++的标准呢?到底MFC的代码运行的顺序又是怎么样的呢?那么多个文件,那么多函数,到底哪一个先运行,哪一个后运行,哪一个调用哪一个,哪一个又被哪一个调用