今天试验了一下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值在减小。正常点触是没问题的。。困扰中。。。。。