vc++中添加上下文菜单的方法
来源:互联网 发布:后会无期 知乎 编辑:程序博客网 时间:2024/05/22 11:41
首先要在在文件首定义菜单项:
#define ID_MENU_EDIT 5001
#define ID_MENU_DELETE 5002
#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);
}
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()
//{{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");
}
...{
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()
//{{AFX_MSG_MAP(CAdo2Dlg)
ON_COMMAND(ID_MENU_EDIT, OnInfoEdit)
ON_COMMAND(ID_MENU_DELETE, OnInfoDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
所有的工作完成了!
- vc++中添加上下文菜单的方法
- Windows Phone 7中添加上下文菜单
- 在fragment中添加上下文菜单
- 在Internet Explorer的标准上下文相关菜单中添加菜单项
- VC在指定控件中添加右键菜单的两种方法
- VC在指定控件中添加右键菜单的两种方法
- WM5.0中添加弹出菜单(即上下文菜单)
- WM5.0中添加弹出菜单(即上下文菜单)
- 如何添加上下文菜单
- WebView添加上下文菜单
- 菜单(四)给ListView的item添加上下文菜单
- 在Vista和Server 2008的资源管理器中添加RunAs的上下文菜单
- vc中添加新类的方法
- vc中添加新类的方法
- VC++对话框中添加状态栏的方法
- VC中添加自定义消息的方法
- VC++对话框中添加状态栏的方法
- VC++对话框中添加状态栏的方法
- Lua 5.0 参考手册
- 要封闭开发了,思考一下封闭开发的纪律条例,大家给点建议,10月18号前回复有效
- xslt函数详解
- 这段时间比较忙
- ASP.Net中控件的EnableViewState属性
- vc++中添加上下文菜单的方法
- server application error详细解决办法
- Dos命令大全
- Spring框架快速入门之简介
- 史上最简单的Hibernate入门简介
- Linux上安装GCC编译器
- 程序员三部曲之二——不作35岁的程序员
- 程序员三部曲之三——不作浮躁的程序员
- Java数字签名