MFC在List控件中显示单个选项的右键菜单


//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;
    }
}
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值