
BEGIN_MESSAGE_MAP(CAdminControlDlg, CDialog)
ON_NOTIFY(NM_RCLICK, IDC_CONTROL_LIST, OnNMRclickUserList)
END_MESSAGE_MAP()
//右键菜单
void OnNMRclickUserList(NMHDR * pNMHDR, LRESULT * pResult)
{
NMITEMACTIVATE * pListNotify=(NMITEMACTIVATE *)pNMHDR;
if (pListNotify->iItem!=-1)
{
//取消选中
//if (pListNotify->iItem==0) return;
//获取位置
CPoint MousePoint;
GetCursorPos(&MousePoint);
//构造菜单
CMenu CtrlMenu;
CtrlMenu.CreatePopupMenu();
//功能菜单
CtrlMenu.AppendMenu(MF_ENABLED,IDM_MENU_NULL,TEXT("添加一项"));
CtrlMenu.AppendMenu(MF_SEPARATOR);
//显示菜单 CtrlMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,MousePoint.x,MousePoint.y,this);
}
return;
}
在OnRButtonDown(UINT nFlags, CPoint point)中写
{
CMenu menu;
menu.LoadMenu( MAKEINTRESOURCE( IDR_POPUP_MENU ) );//资源中的菜单
CMenu* editMenu = menu.GetSubMenu(0);
ASSERT(editMenu);
ClientToScreen(&point);
editMenu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x, point.y, this);
去MSDN查 TrackPopupMenu() 这个函数
