如何在report形式下得CListCtrl中响应右键弹出菜单
就是说,在CListCtrl中使用鼠标选择了一个item,然后使用右键,这样可以弹出一个右键菜单,
菜单中显示插入,删除等菜单
请问这该怎么做,谢谢
问题点数:20、回复次数:4Top
1 楼abesky(神武皇)回复于 2006-03-10 10:56:24 得分 0
BEGIN_MESSAGE_MAP(CTaskView, CView)
ON_NOTIFY(NM_RCLICK, IDC_LISTTASK, OnNMDRclk)// IDC_LISTTASK listctrl资源ID
END_MESSAGE_MAP()
void CTaskView::OnNMDRclk(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
int index = pNMLV->iItem;
if (index == -1)
return;
CPoint pt;
GetCursorPos(&pt); //去鼠标位置
HMENU hMenu = ::CreatePopupMenu();
AppendMenu(hMenu, MF_STRING, 10001, "xxx");
AppendMenu(hMenu, MF_STRING, 10002, "xxxx");
AppendMenu(hMenu, MF_STRING, 10003, "xxxxx");
UINT Cmd = (UINT)::TrackPopupMenu(hMenu,TPM_LEFTALIGN|TPM_RETURNCMD,pt.x,pt.y,0,m_hWnd,NULL); //弹出菜单
switch(Cmd )//处理
{
case :
break;
}
}Top
2 楼striking(庸人自扰)回复于 2006-03-10 11:08:12 得分 0
来晚了..~~~~~Top
3 楼Cadillac1()回复于 2006-03-23 17:04:23 得分 20
BEGIN_MESSAGE_MAP(CTaskView, CView)
ON_NOTIFY(NM_RCLICK, IDC_LISTTASK, OnNMDRclk)// IDC_LISTTASK listctrl资源ID
END_MESSAGE_MAP()
void CTaskView::OnNMDRclk(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
int index = pNMLV->iItem;
if (index == -1)
return;
CPoint pt;
GetCursorPos(&pt); //去鼠标位置
HMENU hMenu = ::CreatePopupMenu();
AppendMenu(hMenu, MF_STRING, 10001, "xxx");
AppendMenu(hMenu, MF_STRING, 10002, "xxxx");
AppendMenu(hMenu, MF_STRING, 10003, "xxxxx");
UINT Cmd = (UINT)::TrackPopupMenu(hMenu,TPM_LEFTALIGN|TPM_RETURNCMD,pt.x,pt.y,0,m_hWnd,NULL);//弹出菜单
switch(Cmd )//处理
{
case :
break;
}
}
Top
4 楼zhoujiamurong(有分俺就不要,俺要知识)回复于 2006-03-30 16:45:23 得分 0
markTop




