现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

CListCtrl添加右键菜单(二)

2012-08-13 05:54 工业·编程 ⁄ 共 834字 ⁄ 字号 暂无评论

为CListCtrl添加消息NM_RCLICK的处理

消息处理函数声明

public:

afx_msg void OnNMRClickListEarthwormThread(NMHDR *pNMHDR, LRESULT *pResult);

消息映射

     ON_NOTIFY(NM_RCLICK, IDC_LIST_EARTHWORM_THREAD, &Cpage2_listCtrl::OnNMRClickListEarthwormThread)

消息处理函数

void Cpage2_listCtrl::OnNMRClickListEarthwormThread(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();//在列表视图控件中获取第一个选择项的位置
    if (pos!=NULL){
        CMenu menu;
        POINT pt = {0};
        GetCursorPos(&pt);//得到鼠标点击位置
        menu.LoadMenu(IDR_THREAD_POPMENU);//菜单资源ID
        menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON,pt.x,pt.y,this); //m_newListCtrl是CListCtrl对象
        HMENU hmenu=menu.Detach();
        menu.DestroyMenu();
    }
    UpdateData(FALSE);
    *pResult = 0;
}

给我留言

留言无头像?