NetSdkDe2.0 右键弹出cmenu菜单类

来源:互联网 发布:角色数据读取失败 编辑:程序博客网 时间:2024/06/13 07:05

在视频窗口点击右键 弹出菜单选项如下:


实现过程:

step1:

在资源视图中Menue中添加一个 Menu类 设置ID为 IDR_MENU_LIVE


step 2:

在liveWin.cpp中添加 右键弹起消息处理函数  ON_WM_RBUTTONUP()   并设置菜单选项可选以及不可选操作

void CLiveWndChn::OnRButtonUp(UINT nFlags, CPoint point) {CMenu menuPop;CMenu *subMenu;POINT pox_cur;menuPop.LoadMenu(IDR_MENU_LIVE);subMenu = menuPop.GetSubMenu(0);if(m_lHandle){subMenu->EnableMenuItem(IDR_MENU_LIVE_LINK, MF_BYCOMMAND | MF_GRAYED);subMenu->EnableMenuItem(IDR_MENU_LIVE_SHUT, MF_BYCOMMAND);subMenu->EnableMenuItem(IDR_MENU_LIVE_REC, MF_BYCOMMAND);//subMenu->EnableMenuItem(IDR_MENU_LIVE_CONFIG, MF_BYCOMMAND);subMenu->CheckMenuItem(IDR_MENU_LIVE_REC, m_bRecord ? MF_BYCOMMAND | MF_CHECKED : MF_BYCOMMAND);}else{// 第一次点击链接之前subMenu->EnableMenuItem(IDR_MENU_LIVE_LINK, MF_BYCOMMAND);subMenu->EnableMenuItem(IDR_MENU_LIVE_SHUT, MF_BYCOMMAND | MF_GRAYED);     //subMenu->EnableMenuItem(IDR_MENU_LIVE_CONFIG, MF_BYCOMMAND | MF_GRAYED);subMenu->CheckMenuItem(IDR_MENU_LIVE_REC, MF_BYCOMMAND);}GetCursorPos(&pox_cur);subMenu->TrackPopupMenu(TPM_LEFTALIGN, pox_cur.x, pox_cur.y, this);/*if(m_pLiveScren->GetFullScreen()){m_pLiveScren->SetFullScreen(FALSE);}*/CWnd::OnRButtonUp(nFlags, point);}

Step: 3

添加菜单选择事件

afx_msg void OnMenuLiveLink();
afx_msg void OnMenuLiveConfig();

0 0