//1.判断列表控件中是否为空,空不做响应
//2.不为空判断是否有选项被选中,没有选中不做响应
//3.有选中开始加载菜单,如果加载菜单句柄为空不做响应
//4.获取鼠标点击的位置在当前的位置中弹出右键菜单
void CMusicDlg::OnNMRClickListCtrl(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
//在列表为空时不显示
if (m_List_Ctrl.GetItemCount() <= 0)
{
return;
}
//没有列被选中不显示
if (m_List_Ctrl.GetSelectedCount() > 0)
{
CMenu menu, *popup;
if (menu.LoadMenu(IDR_MENU2) == NULL)
{
//加载menu为空
DWORD dwRect = GetLastError();
DWORD a = dwRect;
return ;
}
popup = menu.GetSubMenu(0);
CPoint point;
ClientToScreen(&point);
GetCursorPos(&point);
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
*pResult = 0;
}
else
{
return;
}
}
MFC在List控件中显示单个选项的右键菜单
最新推荐文章于 2023-11-26 00:28:48 发布