在新的 Pocket PC设备上,您会在点击长按操作过程中实现确认操作。这是向用户显示您的应用程序知道正在进行何种操作的一种非常好的方法。但是,当您使用 Microsoft eMbedded Visual Basic
时,没有对点击长按确认提供本机支持。您必须自己添加此支持。
首先,您需要捕获发送到每个控件的窗口消息(最重要的是 WM_LBUTTONDOWN 消息)。您可以通过使用像 MessageCE 这样的第三方控件来实现这一目的。然后,您需要使用 Windows CE API
SHRecognizeGesture。这个 API 会处理确认过程的显示(在点击长按操作期间以顺时针方向显示的一圈小红点),并会返回结果代码,用来表示用户按住笔针的时间是否足够长。
在模拟结构(例如字符串)中,我将窗口的句柄和坐标设置为结构的相应成员。如果用户按下笔针的时间足够长,dwFlags 成员的 SHRG_RETURNCMD 值会通知 API 返回一个 GN_CONTEXTMENU 值。