MFC_菜单

1.菜单索引号确定菜单的索引号,注意从 0 开始,分隔符也算数。什么叫弹出菜单(Popup Menu)?一个

子菜单只能有一个缺省菜单。

1 //GetMenu()->GetSubMenu(0)->SetDefaultItem(5,TRUE);
2 str.Format("x=%d,y=%d",GetSystemMetrics(SM_CXMENUCHECK),
3 GetSystemMetrics(SM_CYMENUCHECK));//获得系统的菜单的位图的大小。
4 /* SetMenu(NULL);//移除菜单 CMenu menu;
5 menu.LoadMenu(IDR_MAINFRAME);
6 SetMenu(&menu);
7 menu.Detach();*/增加菜单,此处 detach(),如果是局部变量。

2.设置菜单可用情况

1 void CMainFrame::OnUpdateEditCut(CCmdUI* pCmdUI)
2 {4 pCmdUI->Enable();//当此菜单显示时,设为可用。
5 }

3.右键弹出菜单程序

两种方法1.添加控件Project->Add to Project->component and controls->文件夹 VC components->Popup Menu OK

               2.自己创建函数TrackPopupMenu(),在右键响应函数中确定

1 CMenu menu;
2 menu.LoadMenu(IDR_MENU1);//menu1 实在资源视图中自己创建的函数
3 CMenu *pPopup=menu.GetSubMenu(0);
4 ClientToScreen(&point);  //这句话是坐标和菜单对应
5 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
6 GetParent());

4.创建动态菜单

 1 CMenu menu;
 2 menu.CreatePopupMenu();//创建弹出菜单
 3 // GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"WinSun");
 4 GetMenu()->InsertMenu(2,MF_BYPOSITION  |
 5 MF_POPUP,(UINT)menu.m_hMenu,"WinSun");
 6 menu.AppendMenu(MF_STRING,IDM_HELLO,"Hello");
 7 menu.AppendMenu(MF_STRING,112,"Weixin");
 8 menu.AppendMenu(MF_STRING,113,"Mybole");
 9 menu.Detach();
10 GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"Welcome");
11 GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,
12 MF_BYCOMMAND | MF_STRING,115,"维新");
13 // GetMenu()->DeleteMenu(1,MF_BYPOSITION);
14 // GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);
时间: 2024-10-18 14:10:22

MFC_菜单的相关文章

树形菜单 jsTree 使用方法

jsTree版本:3.0.4 在ASP.NET MVC中使用jsTree Model: public class Department { public int Id { get; set; } public string Name { get; set; } public int PId { get; set; } } 数据库: Controller: jsTree既可以一次性把所有节点都加载到客户端,也可以只加载一层,点击节点后再去服务端获取下层节点.对于小的菜单可以一次性加载完,如果节点很

微信 小程序布局 水平菜单

<!-- 菜单列表部分 --> <view class="wear-menu"> <view class='menu-box' wx:key="menu" wx:for="{{menuList}}" wx:for-index="index"> <view class="menu-img" bindtap="selectMenu" data-ind

微信公众号菜单开发以及授权详细说明

主代码请参考:http://www.cnblogs.com/hopelooking/p/7463934.html 难点解析: 在微信创建菜单的时候我们惯用的是curl,但是菜单中难免是要有中文的,如果你的php版本是5.4版本的话,那么一定会报错的,主要错误原因是对象或者字符串之间的错误,那么我们在使用json_encode的时候就不能单纯的只是json一下了,应该json_encode($data,JSON_UNESCAPED_UNICODE) 例子: public function acti

第二百零八节,jQuery EasyUI,SplitButton(分割按钮菜单)组件

jQuery EasyUI,SplitButton(分割按钮)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 SplitButton(分割按钮)组件的使用方法,这个组件依赖 于 Menu(菜单)组件和 LinkButton(按钮)组件. 注意:SplitButton(分割按钮)组件与,MenuButton(菜单按钮)是一样的,不同是(分割按钮)组件多了一个分隔符 一加载方式 class 加载方式 <a href="javascript:void

第一百八十九节,jQueryUI,折叠菜单 UI

jQueryUI,折叠菜单 UI 学习要点: 1.使用 accordion 2.修改 accordion 样式 3.accordion()方法的属性 4.accordion()方法的事件 5.accordion 中使用 on 折叠菜单(accordion),和选项卡一样也是一种在同一个页面上切换不同内容的功能 UI.它和选项卡的使用几乎没有什么太大区别,只是显示的效果有所差异罢了. 一.使用 accordion 使用 accordion 比较简单,但需要按照指定的规范即可. HTML 部分 <d

在浏览器右键添加自定义菜单

在浏览器右键添加自定义菜单 Afly | 2006-11-8 其实就是类似当安装完 Flashget 后 Internet Explorer 的右键多了"使用网际快车下载"的选项一样,现在我们的需求是:当我们在图片右键时出现"复制图像地址"的选项. 其实很简单,先把下列代码存为 abc.reg 并导入: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Interne

oracle使用connect by进行级联查询 树型菜单

Oracle使用connect by进行级联查询 树型菜单(转) connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点. 来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:id.name和parent_id.它们是具有父子关系的,最顶级的菜单对应的parent_id为0.现假设我们拥有如下记录: id name parent_id 1 菜单01 0 2 菜单02 0 3 菜单03 0 4 菜单0101 1 5 菜单0102

WinForm 多窗体、菜单和工具栏

今天,我首先先学习了一下在WinForm程序开发中常遇到的问题——多窗体程序运行问题. 在开发多窗体程序时,常会遇到以下四个方面的问题: 一.哪个是主窗体 问题:主窗体隐藏了,关闭其它窗体后,没有将主窗体显示/关闭,那么程序就关不上了. 当遇到这个问题时,我们通常的解决办法是:构造函数传值,将窗体传到另一个窗体中去,进行关闭. 二.窗体只能打开一个 创建一个全局的泛型集合,为了放置全部打开的窗体.在窗体打开之前,判断集合中是否有name一致的窗体,如果有就说明已经打开了,就不要再打开了. 问题:

Libgdx之国际化 中英文菜单切换

有时候我们做的游戏不仅仅发布在国内市场,有时候也需要发布在国际市场,这时候我们至少需要中英2套菜单来供不同的玩家使用,毕竟中文不是每个人都能看懂. Libgdx中提供了I18NBundle来供我们使用,I18NBundle提供了一套机制可以使我们从属性(properties)文件中加载资源, 属性文件中的资源是以"name"和"values"的形式存在的,而且资源最好有一个父文件,这样防止资源丢失时,可以使用父文件中的值: 通过上面图片可以看出string.prop