首先说下用途:
1用来接收长按消息:比如当在一个页面长按后出现选项,winCe的那个QQ聊天界面长按就有复制功能,这种实现方法用下面代码
在OnLButtonDown事件下加入如下代码
SHRGINFO shrg;
shrg.cbSize = sizeof(shrg);
shrg.hwndClient = m_hWnd;
shrg.ptDown.x = LOWORD(lParam); //lParam为标准wince的,这里在M8就直接写posX
shrg.ptDown.y = HIWORD(lParam); //lParam为标准wince的,这里在M8就直接写posY
shrg.dwFlags = SHRG_RETURNCMD;
CPoint point;
point.x = shrg.ptDown.x;
point.y = shrg.ptDown.y;
if(::SHRecognizeGesture(&shrg) == GN_CONTEXTMENU)//长按键消息
{
//这里就是你要处理的地方了~~
}
感谢M8开发群的深蓝的提供,另外使用时载入 aygshell.lib,上面包含aygshell.h
2用来表示一直按下的:比如飞机游戏里面一直按下表示一直向右滑动。
这里我就用了个技巧。。。。表见笑。。
在OnLButtonDown时使一个标志变量如 bButtonDown为true,然后在OnLButtonUp时把这个变量变为false。那么在游戏逻辑内只要关系bButtonDown就好了,比如bButtonDown一直为true,则说明一直按着~~~