1、在鼠标右键按下时弹出菜单
//右键按下
void CScreenCell::OnMouseRClick(CPoint pt)
{
if (m_CellRect.PtInRect(pt) && m_bSelect)
{
CMenu pPopup;
if (pPopup.CreatePopupMenu())
{
if (m_bPlay)
{
pPopup.AppendMenu(MF_STRING, WM_VIDEO_CLOSE, _T("关闭视频"));
}
pPopup.AppendMenu(MF_STRING, WM_VIDEO_CLSOEALL, _T("关闭所有视频"));
// pPopup.AppendMenu(MF_STRING, WM_SCREEN_MODE_1, _T("1画面"));
// pPopup.AppendMenu(MF_STRING, WM_SCREEN_MODE_4, _T("4画面"));
// pPopup.AppendMenu(MF_STRING, WM_SCREEN_MODE_9, _T("9画面"));
// pPopup.AppendMenu(MF_STRING, WM_SCREEN_MODE_16, _T("16画面"));
m_pWnd->ClientToScreen(&pt);
pPopup.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y,m_pWnd);
}
}
}
2、在主对话框里捕捉消息响应
LRESULT CDHDEMODlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_COMMAND)
{//响应在WallScrennCell中手动添加菜单消息
switch(LOWORD(wParam))
{
case WM_VIDEO_CLOSE:
OnCloseVideo();
break;
case WM_VIDEO_CLSOEALL:
CloseAllVideo();
break;
default:
break;
}
}
return CDialog::WindowProc(message, wParam, lParam);
}