我正在使用 Visual C++/MFC 开发基于桌面的项目。有很多按钮。但问题是,它应该在没有鼠标/键盘可用的触摸屏显示器上工作。
那么,ON_BN_CLICKED 会在触摸屏显示器中作为触摸事件工作吗?或者我必须以其他方式处理它?
我正在使用 Visual C++/MFC 开发基于桌面的项目。有很多按钮。但问题是,它应该在没有鼠标/键盘可用的触摸屏显示器上工作。
那么,ON_BN_CLICKED 会在触摸屏显示器中作为触摸事件工作吗?或者我必须以其他方式处理它?
如果您的意思是屏幕点击,则通过“触摸”事件是的,它们可以被视为相同。
Windows 7 为不提供任何明确支持的应用程序提供内置支持,以支持通过屏幕键盘和书写板接收输入。
Windows 将主要以与鼠标相同的模式使用触摸,屏幕点击等同于鼠标点击。因此,“ON_BN_CLICKED”将适用于屏幕点击。
话虽如此,您可以通过以下两种方式之一为 Touch 支持提供显式支持:
手势:Windows 提供的将独特的触摸序列映射到缩放和平移等手势。MFC 进一步将这些手势转换为一组简化的 CWnd 虚拟方法,可以根据需要覆盖这些方法。
OnGestureZoom(CPoint ptCenter, long lDelta)
OnGesturePan(CPoint ptFrom, CPoint ptTo)
OnGestureRotate(CPoint ptCenter, double dblAngle)
OnGestureTwoFingerTap(CPoint ptCenter)
OnGesturePressAndTap(CPoint ptPress, long lDelta)
触摸消息:注册以接收可能同时来自多个触摸点的低级触摸消息,并在消息处理程序中响应这些触摸事件。
virtual BOOL OnTouchInput(CPoint pt, int nInputNumber, int nInputsCount, PTOUCHINPUT pInput);
来源:查看本文了解详情。