给树控件添加右键菜单
来源:互联网 发布:学而后知不足的下一句 编辑:程序博客网 时间:2024/05/22 01:54
步骤1:
添加MM_CONTEXTMENU消息:
添加代码如下:
void CConfigurationToolDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
CPoint cPoint;
CMenu RightMenu;
CRect ItemRect;
int nImag;
GetCursorPos(&cPoint); //获取鼠标的位置
m_DevTree.ScreenToClient(&cPoint); //将鼠标的屏幕坐标转换为树控件的客户坐标
HTREEITEM hItem = m_DevTree.HitTest(cPoint);
if (hItem == NULL)
{
return;
}
m_DevTree.SelectItem(hItem);
m_DevTree.GetItemImage(hItem, nImag, nImag);
if (nImag != 0)
{
return;
}
m_DevTree.ClientToScreen(&cPoint);
RightMenu.CreatePopupMenu();
RightMenu.AppendMenu(MF_STRING, MENU_ADDDEV, "添加不同网段的设备");
RightMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_TOPALIGN|TPM_LEFTBUTTON, cPoint.x,cPoint.y, FromHandle(m_hWnd));
}
步骤2:
手动添加相应菜单消息:
1. 在.h文件中添加消息函数声明:
afx_msg void OnPopuMenu(UINT nID);
2. 在.cpp文件中添加消息映射
ON_COMMAND_RANGE(MENU_BASE, MENU_END, OnPopuMenu)
3. 添加函数体
void CConfigurationToolDlg::OnPopuMenu(UINT nID)
{
switch(nID)
{
case MENU_ADDDEV:
CAddDevipDlg dlg;
dlg.DoModal();
break;
}
}
4. 忘了定义消息了
#define MENU_BASE WM_USER+10000
#define MENU_ADDDEV WM_USER+10001
#define MENU_END WM_USER+10002
- 给树控件添加右键菜单
- VC++ 给Tree控件添加右键菜单
- 控件添加右键菜单
- 给CListCtrl添加右键菜单
- 给CListCtrl添加右键菜单
- 给CListCtrl添加右键菜单
- 给DataGridView添加右键菜单
- 给DataGridView添加右键菜单
- 给CListCtrl添加右键菜单
- 给表格添加右键菜单
- 如何给CTreeCtrl 添加右键菜单
- 给右键添加菜单(editplus)
- 如何给CTreeCtrl 添加右键菜单
- 给右键菜单添加cmd快捷通道
- 给ubuntu添加右键打开菜单
- DevExpress 给TreeList添加右键菜单
- SWT如何给Table添加右键菜单
- 给窗口添加右键菜单 WM_CONTEXTMENU
- 防盗链
- 排序
- 项目总结
- platform的那些事儿
- asmack实现获取好友列表 添加好友 搜索好友
- 给树控件添加右键菜单
- 存储过程的一些积累
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- EA经典入门教程
- shell字符串变量的特异功能:字符串的替换(${str/源模式/目标模式},${str//源模式/目标模式})、截断
- 二项堆运用——hdu1512解题报告
- Struts2验证器(验证器框架流程,自定义验证器,注意事项)
- css中背景图片路径问题
- smarty实现的代码(一)