右键菜单的创建总结本文介绍Pop-up的创建,右键菜单在应用软件中可以说是使用极其频繁的一种技术.结合实际项目,做以下总结; 1.定义菜单项结构体:
stMenuItem MenuItemInsertPerf[] = { {IDM_INSERT_ALLPERF, "增加性能"}, {IDM_END, ""} };
CMenu *m_pRightMenu; //初始化: CPerfTreeView::CPerfTreeView() : m_pRightMenu(NULL) { } 在析构函数中销毁 CPerfTreeView::~CPerfTreeView() { if(m_pRightMenu != NULL) { m_pRightMenu->DestroyMenu(); delete m_pRightMenu; m_pRightMenu = NULL; } } 4.创建菜单的函数: /********************************************************************* * 函数名称:void SetRightMenu() * 说明:创建Pop-Up Menu * 入口参数: * 空 * 返回值: * void -- * 作者: Duanyx * 时间 : 2008-03-24 13:23:30 *********************************************************************/ void CPerfTreeView::SetRightMenu() { if(m_pRightMenu == NULL) { m_pRightMenu = new CMenu(); m_pRightMenu->CreatePopupMenu(); } int iNum, i; stMenuItem *pItem = MenuItemInsertPerf; iNum = m_pRightMenu->GetMenuItemCount(); for(i = iNum - 1; i >= 0; i--) { m_pRightMenu->RemoveMenu(i, MF_BYPOSITION); } while (pItem->iMenuID != IDM_END) { if(pItem->iMenuID > 0) { m_pRightMenu->InsertMenu(-1, MF_BYCOMMAND, pItem->iMenuID, pItem->szItem); } else { m_pRightMenu->InsertMenu(-1, MF_SEPARATOR); } pItem++; } } 5.在右键消息中加载此菜单: /********************************************************************* * 函数名称:void OnRButtonDown(UINT nFlags, CPoint point) * 说明:右键消息响应中加载菜单 * 入口参数: * UINT nFlags * CPoint point * 返回值: * void -- * 作者: Duanyx * 时间 : 2008-03-24 14:03:30 *********************************************************************/ void CPerfTreeView::OnRButtonDown(UINT nFlags, CPoint point) { // CTreeView::OnRButtonDown(nFlags, point); CTreeCtrl &treeCtrl = GetTreeCtrl(); UINT nFlag; CPoint cp; GetCursorPos(&cp); treeCtrl.ScreenToClient(&cp); HTREEITEM hSel = treeCtrl.HitTest(cp, &nFlag); m_hPerfItemSel = hSel; treeCtrl.ClientToScreen(&cp); //右键单击时选中结点. if(hSel && (nFlag & (TVHT_ONITEMLABEL | TVHT_ONITEMICON)) != 0) { //选择此结点并使用删除菜单有效 //TreeCtrl默认右键不能选定结点,所以做此处理实现右键单击选定 treeCtrl.SelectItem(hSel); //使菜删除菜单失效 m_pRightMenu->EnableMenuItem(IDM_DELETE_DEFAULTPEF, MF_GRAYED); } else { //当前没有选择结点,使菜删除菜单失效 m_pRightMenu->EnableMenuItem(IDM_DELETE_DEFAULTPEF, MF_GRAYED); } //弹出菜单 m_pRightMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, cp.x, cp.y, this) ; } 6.当然也可用LoadMenu方法加载显式创建的菜单,个人觉得如果一个系统中要使用很多CMenu的话,这样做不是一个值得提倡的方法.
您还没有登录,请您登录后再发表评论
•将cmder添加到文件夹右键菜单(即添加Cmder here): 以管理员权限打开 PowerShell;切换到 cmder 的解压路径;执行 .\cmder.exe /REGISTER ALL,即可添加,取消注册则执行 .\cmder.exe /UNREGISTER ALL •为...
│ Windows右键菜单设置与应用技巧 .txt │ JavaScript验证表单大全.txt │ ├─组策略与注册表 │ 我总结的实用的注册表修改.txt │ 注册表禁用30项.txt │ 注册表详细设置之一.txt │ 注册表详细设置二.txt │ ...
(五) JTree右键菜单实现编辑、添加、删除节点 63 Test.java源代码 63 (六) 功能齐全的JTree例子 66 TreeEditTest.java源代码 66 (七) JTree控件的使用 70 构造函数: 70 TreeModel接口 70 DefaultTreeModel缺省版本 ...
程序亮点:界面美观,操作方便,增加了右键菜单和图形按钮等功能。 程序缺陷:程序中商品促销时间的比较功能未完善。 思想总结:通过编写此程序发现了自己在代码和控件运用上的不熟练,需多加练习,以后一定要做出...
" "(三)、结构分析 " "(1)、菜单栏:利用类JMenuBar创建一个菜单条的实例menubar,并利用类Jme" "nu创建了四个菜单的实例menu1、menu2、menu3、menu4分别为文件、编辑、格 " "式、帮助,如下图所示 " " " " ...
“控件”菜单下的计算器、动态创建按钮、上网问卷调查、调整对话框背景色等四个对话框。 示例中的其它功能可以根据实际情况决定是否编写。(4学时) 3)编写一个如示例ExMenu的MFC菜单、工具栏和状态栏的应用程序,...
2 各种工作台的进入方式 a 菜单区中文件菜单中选择新建 b 菜单区中开始菜单中选择 c 快捷菜单中直接选取 3 鼠标使用技巧 a 选择物体 左键(单击) b 移动物体 中键(按住) c 旋转物体 中键+左键或右键(按住)(可...
" "选中"文件",单击右键,在快捷菜单中选中"复制",然后再在希望粘贴的地方," "单击右键,选中"粘贴"; " "选中"文件",单击右键,在快捷菜单中选中"删除",然后再在弹出的对话框,单" "击"是"。 " " " "文件属性的...
9.4.3 Tree View右键菜单 262 9.4.4 List View控件 263 9.4.5 为List View控件增加分栏 265 9.4.6 为List View控件增加项 266 9.4.7 文本框控件 267 9.4.8 为文本框控件设置文字 268 9.5 界面资源 269...
相关推荐
•将cmder添加到文件夹右键菜单(即添加Cmder here): 以管理员权限打开 PowerShell;切换到 cmder 的解压路径;执行 .\cmder.exe /REGISTER ALL,即可添加,取消注册则执行 .\cmder.exe /UNREGISTER ALL •为...
│ Windows右键菜单设置与应用技巧 .txt │ JavaScript验证表单大全.txt │ ├─组策略与注册表 │ 我总结的实用的注册表修改.txt │ 注册表禁用30项.txt │ 注册表详细设置之一.txt │ 注册表详细设置二.txt │ ...
(五) JTree右键菜单实现编辑、添加、删除节点 63 Test.java源代码 63 (六) 功能齐全的JTree例子 66 TreeEditTest.java源代码 66 (七) JTree控件的使用 70 构造函数: 70 TreeModel接口 70 DefaultTreeModel缺省版本 ...
程序亮点:界面美观,操作方便,增加了右键菜单和图形按钮等功能。 程序缺陷:程序中商品促销时间的比较功能未完善。 思想总结:通过编写此程序发现了自己在代码和控件运用上的不熟练,需多加练习,以后一定要做出...
程序亮点:界面美观,操作方便,增加了右键菜单和图形按钮等功能。 程序缺陷:程序中商品促销时间的比较功能未完善。 思想总结:通过编写此程序发现了自己在代码和控件运用上的不熟练,需多加练习,以后一定要做出...
" "(三)、结构分析 " "(1)、菜单栏:利用类JMenuBar创建一个菜单条的实例menubar,并利用类Jme" "nu创建了四个菜单的实例menu1、menu2、menu3、menu4分别为文件、编辑、格 " "式、帮助,如下图所示 " " " " ...
“控件”菜单下的计算器、动态创建按钮、上网问卷调查、调整对话框背景色等四个对话框。 示例中的其它功能可以根据实际情况决定是否编写。(4学时) 3)编写一个如示例ExMenu的MFC菜单、工具栏和状态栏的应用程序,...
2 各种工作台的进入方式 a 菜单区中文件菜单中选择新建 b 菜单区中开始菜单中选择 c 快捷菜单中直接选取 3 鼠标使用技巧 a 选择物体 左键(单击) b 移动物体 中键(按住) c 旋转物体 中键+左键或右键(按住)(可...
" "选中"文件",单击右键,在快捷菜单中选中"复制",然后再在希望粘贴的地方," "单击右键,选中"粘贴"; " "选中"文件",单击右键,在快捷菜单中选中"删除",然后再在弹出的对话框,单" "击"是"。 " " " "文件属性的...
9.4.3 Tree View右键菜单 262 9.4.4 List View控件 263 9.4.5 为List View控件增加分栏 265 9.4.6 为List View控件增加项 266 9.4.7 文本框控件 267 9.4.8 为文本框控件设置文字 268 9.5 界面资源 269...
9.4.3 Tree View右键菜单 262 9.4.4 List View控件 263 9.4.5 为List View控件增加分栏 265 9.4.6 为List View控件增加项 266 9.4.7 文本框控件 267 9.4.8 为文本框控件设置文字 268 9.5 界面资源 269...