Windows 7 高级多点触控编程指南
1. 处理原始触摸消息
Windows 7 手势支持是一项强大且易用的技术,能为应用程序带来出色的多点触控体验。然而,它也存在一定的局限性,例如支持的触摸点总数有限,所有手势最多仅支持两个同时触摸点;并且无法组合手势,不能同时对一个对象执行旋转和缩放操作。
当你希望在应用程序中提供更丰富的多点触控体验时,就需要选择更强大的多点触控 API。使用该 API,你需要自行处理触摸消息并解读用户执行的手势,而不是依赖 Windows 7 提供的默认手势引擎。
1.1 设置 Windows 以接收触摸消息
若要让 Windows 7 开始向你的应用程序发送WM_TOUCH消息,你需要调用RegisterTouchWindow(HWND hWnd, ULONG uFlags)函数。调用此函数可将由HWND参数定义的单个窗口注册为支持触摸的窗口。需要注意的是,WM_TOUCH和WM_GESTURE消息是互斥的,调用RegisterTouchWindow后,你将停止接收默认的WM_GESTURE消息。
在请求系统发送触摸消息之前,你应该验证当前计算机配置是否支持多点触控。可以使用GetSystemMetrics(int nIndex)函数,传入SM_DIGITIZER作为nIndex