怎么样在vc++中添加上下文菜单?

怎么样在vc++中添加上下文菜单?

首先要在在文件首定义菜单项:

怎么样在vc++中添加上下文菜单?#defineID_MENU_EDIT5001
怎么样在vc++中添加上下文菜单?#defineID_MENU_DELETE5002

然后添加对话框的WM_CONTEXTMENU消息函数,函数内容为:

怎么样在vc++中添加上下文菜单?CMenumenuPopup;
怎么样在vc++中添加上下文菜单?
if(menuPopup.CreatePopupMenu())
怎么样在vc++中添加上下文菜单?怎么样在vc++中添加上下文菜单?
{
怎么样在vc++中添加上下文菜单?menuPopup.AppendMenu(MF_STRING,ID_MENU_EDIT,
"修改(&E)");
怎么样在vc++中添加上下文菜单?menuPopup.AppendMenu(MF_STRING,ID_MENU_DELETE,
"删除(&D)");
怎么样在vc++中添加上下文菜单?menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,
this);
怎么样在vc++中添加上下文菜单?}

然后定义菜单相应函数,

1,在头文件中添加函数定义语句:

怎么样在vc++中添加上下文菜单?//Generatedmessagemapfunctions
怎么样在vc++中添加上下文菜单?
//{{AFX_MSG(CAdo2Dlg)
怎么样在vc++中添加上下文菜单?virtualBOOLOnInitDialog();
怎么样在vc++中添加上下文菜单?afx_msg
voidonInfoEdit();//这个是编辑菜单的响应函数
怎么样在vc++中添加上下文菜单?afx_msgvoidonInfoDelete();//这个是删除菜单的响应函数
怎么样在vc++中添加上下文菜单?afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);
怎么样在vc++中添加上下文菜单?afx_msg
voidOnPaint();
怎么样在vc++中添加上下文菜单?afx_msgHCURSOROnQueryDragIcon();
怎么样在vc++中添加上下文菜单?afx_msg
voidOnButton1();
怎么样在vc++中添加上下文菜单?afx_msg
voidOnButton2();
怎么样在vc++中添加上下文菜单?afx_msg
voidOnRdblclkList1(NMHDR*pNMHDR,LRESULT*pResult);
怎么样在vc++中添加上下文菜单?afx_msg
voidOnDblclkList1(NMHDR*pNMHDR,LRESULT*pResult);
怎么样在vc++中添加上下文菜单?afx_msg
voidOnContextMenu(CWnd*pWnd,CPointpoint);
怎么样在vc++中添加上下文菜单?
//}}AFX_MSG
怎么样在vc++中添加上下文菜单?DECLARE_MESSAGE_MAP()

2,在cpp文件中添加函数体:

怎么样在vc++中添加上下文菜单?voidCAdo2Dlg::OnInfoEdit()
怎么样在vc++中添加上下文菜单?怎么样在vc++中添加上下文菜单?
{
怎么样在vc++中添加上下文菜单?AfxMessageBox(
"edit");
怎么样在vc++中添加上下文菜单?}

怎么样在vc++中添加上下文菜单?
怎么样在vc++中添加上下文菜单?
voidCAdo2Dlg::OnInfoDelete()
怎么样在vc++中添加上下文菜单?怎么样在vc++中添加上下文菜单?
{
怎么样在vc++中添加上下文菜单?AfxMessageBox(
"delete");
怎么样在vc++中添加上下文菜单?}

3,然后在cpp文件中添加影射:

怎么样在vc++中添加上下文菜单?BEGIN_MESSAGE_MAP(CAdo2Dlg,CDialog)
怎么样在vc++中添加上下文菜单?
//{{AFX_MSG_MAP(CAdo2Dlg)
怎么样在vc++中添加上下文菜单?ON_COMMAND(ID_MENU_EDIT,OnInfoEdit)
怎么样在vc++中添加上下文菜单?ON_COMMAND(ID_MENU_DELETE,OnInfoDelete)
怎么样在vc++中添加上下文菜单?
//}}AFX_MSG_MAP
怎么样在vc++中添加上下文菜单?END_MESSAGE_MAP()

所有的工作完成了!