1.添加菜单资源:
2.添加我们的代码
a.添加右键列表的响应函数(NM_RCLICK)
b.添加代码
- void CPCRemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- CMenu popup; // 声明一个菜单变量
- popup.LoadMenu(IDR_MENU_ONLINE); // 载入菜单资源
- CMenu* pM = popup.GetSubMenu(0); // 得到菜单项
- CPoint p;
- GetCursorPos(&p); // 得到鼠标指针的位置
- int count = pM->GetMenuItemCount(); // 得到菜单的个数
- if (m_CList_Online.GetSelectedCount() == 0) // 如果没有选中列表中的条目
- {
- for (int i = 0; i < count; i++) //遍历每一个菜单
- {
- pM->EnableMenuItem(i, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); //菜单全部变灰
- }
- }
- pM->TrackPopupMenu(TPM_LEFTALIGN, p.x, p.y, this); //在指定位置显示菜单
- *pResult = 0;
- }
3.运行效果: