【遥控编写05】客户端界面的设计和编写-列表中显示弹出菜单
【远控编写05】客户端界面的设计和编写--列表中显示弹出菜单
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.运行效果: