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;
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值