关于M8两点触摸开发

今天试验了一下M8的两点开发,发现有个BUG,但是不影响使用。M8的两点开发用法相对来说还是简单的,下面是具体方法:

 

首先:

 if(RegisterTouchNotifyEx(theAPP.m_MainWnd.m_hWnd, MZ_TOUCH_GET, TCH_NOTIFY_FLAG_RAWDATA) == FALSE)
 {
  MzMessageBoxEx(theAPP.m_MainWnd.m_hWnd, L"注册失败", L"注册信息", MB_OK, false);
 }

注意这个在模拟器上是返回失败的,真机才可以

这里注意红色,研究了半天,发现自己定义一个大于100的宏就可以了,这个值就是窗口值,下面会用到

然后在本地实现MzDefWndProc(UINT message, WPARAM wParam, LPARAM lParam);

 

 

收到message为MZ_TOUCH_GET时

int m_X1Pos = 0;
 int m_Y1Pos = 0;
 int m_X2Pos = 0;
 int m_Y2Pos = 0;

 TOUCH_RAW_DATA trData;
 GetTouchRawData(&trData);
 m_X1Pos = trData.FingerData[0].x;
 m_Y1Pos = trData.FingerData[0].y;

 m_X2Pos = trData.FingerData[1].x;
 m_Y2Pos = trData.FingerData[1].y;   

 

用上面的函数获得两点坐标,先按下的是X1,Y1,后按下的是X2,Y2。

还有发现一个BUG,

 

当一点按下,然后按下另一点向Y轴增加的方向拖动,会发现Y值在减小。正常点触是没问题的。。困扰中。。。。。

 

你可能感兴趣的:(关于M8两点触摸开发)