大家好,请教下高手,VC中,如何添加类似系统菜单的右键菜单?

大家好,请教下高手,VC中,如何添加类似系统菜单的右键菜单?

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() 这个函数