CListCtrl添加右键菜单

来源:互联网 发布:医疗大数据平台 编辑:程序博客网 时间:2024/05/21 00:46

添加CListCtrl的右键响应事件(NM_RCLICK)

void CCardInfoDlg::OnNMRClickListCard(NMHDR *pNMHDR, LRESULT *pResult){LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);//防止在空白区点击弹出菜单if (m_LstCtrl.GetSelectedCount() <= 0){return;}//下面的这段代码, 不单单适应于ListCtrlCMenu menu, *pPopup;menu.LoadMenu(IDR_MENU_CARD_INFO);pPopup = menu.GetSubMenu(0);CPoint myPoint;ClientToScreen(&myPoint);GetCursorPos(&myPoint); //鼠标位置pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, myPoint.x, myPoint.y,GetParent());}


 这里需要注意一个地方, TrackPopupMenu的最后一个参数, 按钮如果想要响应事件, 则必须指定为 事件所在类, 一般指定为this,如果用GetParent的话, ListCtrl只能弹出菜单, 但却响应不了事件, 当然, 除非你为ListCtrl创建类, 并在类里边实现菜单的各个事件

原创粉丝点击