您的位置:首页 > 其它

自己动手写类似酷狗播放器(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: