自己动手写类似酷狗播放器(4)_鼠标右键菜单的添加
2013-08-11 10:01
281 查看
在播放器中,我们希望在播放列表中,可以右键有菜单选择,比如播放,上一首,下一首,停止删除什么的。那是如何达到这个效果的呢? 目标:在Listbox中增加鼠标右键菜单功能
步骤:
a.用CreatePopupMenu()函数创建一个空菜单句柄,以后所有要添加的菜单条都是往这个句柄添加 b.获得子菜单项的句柄(这样就可以整体插入)或者选择自己要插入的菜单条插入GetSubMenu,AppendMenu这两个函数。 c. 获取当前鼠标的位置,就是点击哪里右键就在哪里显示菜单GetCursorPos()函数来获取。 d.弹出菜单TrackPopupMenu(hpopupmenu,TPM_RIGHTBUTTON,point.x,point.y,0,hDlg_main,NULL);这个函数中hDlg_main是菜单所在的主对话框句柄,当用户点击弹出的菜单后,就向该窗口发送WM_COMMAND命令来响应菜单的操作。
下面的代码显示,如何右键弹出菜单:
case WM_RBUTTONDOWN: //右键按下 { POINT point; GetCursorPos(&point); //获取当前鼠标的位置 HMENU hpopupmenu=CreatePopupMenu(); //创建一个弹出菜单 HMENU hmenu_playmode=GetSubMenu(GetSubMenu(hmenu,0),2); //获取控制条目子菜单句柄 AppendMenu(hpopupmenu,MF_STRING,IDM_PLAY,TEXT("播放")); AppendMenu(hpopupmenu,MF_STRING,IDM_PAUSEORSTART,TEXT("暂停/继续")); AppendMenu(hpopupmenu,MF_STRING,IDM_STOP,TEXT("停止")); AppendMenu(hpopupmenu,MF_SEPARATOR,NULL,NULL); //添加下划线 AppendMenu(hpopupmenu,MF_POPUP,(UINT)hmenu_playmode,TEXT("播放模式")); AppendMenu(hpopupmenu,MF_SEPARATOR,NULL,NULL); //添加下划线 AppendMenu(hpopupmenu,MF_STRING,IDM_DELE,TEXT("删除")); AppendMenu(hpopupmenu,MF_STRING,IDM_CLEARALL,TEXT("清空列表")); TrackPopupMenu(hpopupmenu,TPM_RIGHTBUTTON,point.x,point.y,0,hDlg_main,NULL);//弹出菜单 return TRUE; }
相关文章推荐
- 自己动手DIY鼠标右键菜单背景
- 自己动手写类似酷狗播放器(6)_UI初步改善_添加背景色
- centos中给鼠标右键菜单添加“打开…
- 解决VS2010中在项目上右键鼠标,无“添加STS引用”菜单的问题
- windows下添加类似ubuntu,centos下的右键CMD快捷菜单
- 自己动手写类似酷狗播放器(3)_Slider控件使用
- 在centos中给鼠标右键菜单添加“打…
- Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出
- Win7如何自定义鼠标右键菜单 添加新建WORD文档
- 鼠标右键菜单添加应用快捷方式
- Ubuntu14.04添加鼠标右键new_empty_file菜单
- Windows7系统下将UltraEdit添加到鼠标右键菜单
- 自己动手写类似酷狗播放器(4)_系统托盘的显示
- 【转】如何添加鼠标右键菜单里的快捷图标
- 如何将自己喜爱的网站添加到Win7系统中的右键菜单
- Win7如何自定义鼠标右键菜单 添加新建文本文档
- 如何在TabControl中响应右键鼠标(添加一个ContextMenu就可以了),如何让在tab标签处右键菜单和在内容处右键菜单显示不同的菜单?
- silverlight2自定义鼠标右键菜单,屏蔽原来右键菜单显示的内容,打造自己喜欢的菜单。
- Windows下给鼠标右键菜单添加获得完全控制权限的菜单项
- 如何在C#添加鼠标右键菜单