在ChildView中添加消息响应 BEGIN_MESSAGE_MAP(CChildView, CWnd) ON_WM_CONTEXTMENU() END_MESSAGE_MAP() 消息响应函数 void CChildView::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu menu; menu.LoadMenu (IDR_CONTEXTMENU); CMenu* pContextMenu = menu.GetSubMenu (0); pContextMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd ()); // // Call the base class if the shape was not clicked. // CWnd::OnContextMenu (pWnd, point); } 注意: 必须保证创建的PopMenu中的项要有响应函数的,否则创建的菜单会是灰色的。因为 MFC里如果某个菜单ID没有实现相应处理,自动为灰色。