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.运行效果: