Wince里面如何实现按钮长按的功能?

时间:2021-01-05 18:00:49
以前一直认为使用鼠标右键消息即可以在真实环境下实现用户使用触摸笔长按的方式弹出菜单,目前在模拟器或者真实环境里的桌面和文件夹里面都会正常显示圆圈,在应用程序的listview控件中也能正常出现,但是在其他地方怎么按都不会出现圆圈圈,这是为什么?因为我有一个程序是要求右键单击按钮时显示菜单的,现在怎么也不出现了,请知道的知会一下,谢谢!

7 个解决方案

#1


再要实现右键的窗口中,响应WM_LBUTTONDOWN消息,然后使用SHRecognizeGesture判断,若返回TRUE,则弹出右键菜单(示例代码将消息发到了父窗口,whatever)
if(SHRecognizeGesture(point,TRUE))
{
CPoint pt=point;
ClientToScreen(&pt);
GetParent()->SendMessage(WM_RMENU,pt.x,pt.y);
}
else
{
CListCtrl::OnLButtonDown(nFlags,point);
}

#2


1.在窗体FORM加一个ContextMenu控件ContextMenu1
2.在ContextMenu1加入菜单项目,比如,复制、粘贴等等
3.把窗体FORM属性ContextMenu选择ContextMenu1

#3


mark

#4


帮顶一下,也想知道

#5


目前我是使用系统的CListCtrl控件自身有的圆圈圈,然后把CListCtrl控件改造成我想要的Button控件的样式,目前基本上满足了要求。前面两位的好方法暂时没有试验,谢谢你们!我用的是Wince5.0没有使用Mobile.

#6


LZ最终解决了吗?
小弟在WinCE5.0的模拟器上,长按ListView控件只能画圈,不能弹出对应的ContextMenu,请问LZ 这是怎么回事呢?

#7


1.在窗体FORM加一个ContextMenu控件ContextMenu1
2.在ContextMenu1加入菜单项目,比如,复制、粘贴等等
3.把窗体FORM属性ContextMenu选择ContextMenu1

-----------
这个在仿真器上好用,可是在wince设备中就不好用了!为什么?

#1


再要实现右键的窗口中,响应WM_LBUTTONDOWN消息,然后使用SHRecognizeGesture判断,若返回TRUE,则弹出右键菜单(示例代码将消息发到了父窗口,whatever)
if(SHRecognizeGesture(point,TRUE))
{
CPoint pt=point;
ClientToScreen(&pt);
GetParent()->SendMessage(WM_RMENU,pt.x,pt.y);
}
else
{
CListCtrl::OnLButtonDown(nFlags,point);
}

#2


1.在窗体FORM加一个ContextMenu控件ContextMenu1
2.在ContextMenu1加入菜单项目,比如,复制、粘贴等等
3.把窗体FORM属性ContextMenu选择ContextMenu1

#3


mark

#4


帮顶一下,也想知道

#5


目前我是使用系统的CListCtrl控件自身有的圆圈圈,然后把CListCtrl控件改造成我想要的Button控件的样式,目前基本上满足了要求。前面两位的好方法暂时没有试验,谢谢你们!我用的是Wince5.0没有使用Mobile.

#6


LZ最终解决了吗?
小弟在WinCE5.0的模拟器上,长按ListView控件只能画圈,不能弹出对应的ContextMenu,请问LZ 这是怎么回事呢?

#7


1.在窗体FORM加一个ContextMenu控件ContextMenu1
2.在ContextMenu1加入菜单项目,比如,复制、粘贴等等
3.把窗体FORM属性ContextMenu选择ContextMenu1

-----------
这个在仿真器上好用,可是在wince设备中就不好用了!为什么?