16,471
社区成员
发帖
与我相关
我的任务
分享
void C测试list容量Dlg::OnRclickList1(NMHDR *pNMHDR, LRESULT *pResult)
{//这里应该没有问题,右键能显示菜单
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
CMenu menu;
POINT pt = {0};
GetCursorPos(&pt);//得到鼠标点击位置
menu.LoadMenu(IDR_MENU1);//菜单资源ID
menu.GetSubMenu(0)->TrackPopupMenu(0,pt.x,pt.y,&m_list); //m_newListCtrl是CListCtrl对象
HMENU hmenu=menu.Detach();
menu.DestroyMenu();
*pResult = 0;
}
……
BEGIN_MESSAGE_MAP(C测试list容量Dlg, CDialogEx)
……
ON_COMMAND(ID_delete, &CmyDlg::OnDelete)
END_MESSAGE_MAP()
……
void CmyDlg::OnDelete()
{
// TODO: 在此添加命令处理程序代码
int m_nIndex;//这里下断点,右键菜单之后代码根本不往这里走啊!
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 获取引索项。m_nIndex的值为用户在列表框中选中的行号
if(m_nIndex==-1)//如果引索项值为-1,则警告。用户不选择列表框中的任何一项,则m_nIndex的值为-1
{
MessageBox("请选择一名操作员!","提示",MB_ICONINFORMATION);
return;
}
else
{
CString dd;
dd.Format("%d",m_nIndex);
MessageBox(dd,"提示",MB_ICONINFORMATION);
}
}