添加上下文菜单的方法

首先要在在文件首定义菜单项:
#define ID_MENU_EDIT   5001 
#define ID_MENU_DELETE 
5002
然后添加对话框的WM_CONTEXTMENU消息函数,函数内容为:
    CMenu menuPopup;
    
if(menuPopup.CreatePopupMenu())
    {
         menuPopup.AppendMenu(MF_STRING,ID_MENU_EDIT,
"修改(&E)");
         menuPopup.AppendMenu(MF_STRING,ID_MENU_DELETE,
"删除(&D)");
         menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);    
    }
然后定义菜单相应函数,

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

// Generated message map functions
 
//{{AFX_MSG(CAdo2Dlg)
 virtual BOOL OnInitDialog();
 afx_msg void onInfoEdit(); 
//  这个是编辑菜单的响应函数
 afx_msg void onInfoDelete();  
//这个是删除菜单的响应函数
 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 afx_msg void OnButton1();
 afx_msg void OnButton2();
 afx_msg void OnRdblclkList1(NMHDR
* pNMHDR, LRESULT* pResult);
 afx_msg void OnDblclkList1(NMHDR
* pNMHDR, LRESULT* pResult);
 afx_msg void OnContextMenu(CWnd
* pWnd, CPoint point);
 
//}}AFX_MSG
 DECLARE_MESSAGE_MAP()

 

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

void CAdo2Dlg::OnInfoEdit() 
{
    AfxMessageBox(
"edit");
}

void CAdo2Dlg::OnInfoDelete() 
{
    AfxMessageBox(
"delete");
}

 

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

BEGIN_MESSAGE_MAP(CAdo2Dlg, CDialog)
    
//{{AFX_MSG_MAP(CAdo2Dlg)
    ON_COMMAND(ID_MENU_EDIT,    OnInfoEdit)
    ON_COMMAND(ID_MENU_DELETE,  OnInfoDelete)
    
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

 

所有的工作完成了!

posted on 2007-12-05 20:19 李亚 阅读(323) 评论(0)  编辑 收藏 引用 所属分类: MFC/VC


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

公告

这世界并不会在意你的自尊,这世界指望你在自我感觉良好之前先要有所成就!

常用链接

留言簿(3)

随笔分类(32)

随笔档案(32)

相册

最新随笔

搜索

最新评论

阅读排行榜

评论排行榜