MFC对话框动态添加菜单

.添加菜单资源

2.添加一个菜单,添加菜单项

如图所示:

3.加入WM_CREATE消息

代码如下:

1 int CDemoDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
 2 {
 3     if (CDialogEx::OnCreate(lpCreateStruct) == -1)
 4         return -1;
 5 
 6     // TODO:  Add your specialized creation code here
 7     CMenu* pMenu = NULL;
 8     pMenu = GetMenu(); 
 9     if(pMenu != NULL)
10     {
11         CMenu* pSubMenu = NULL;
12         pSubMenu = pMenu->GetSubMenu(0);
13         if(pSubMenu == NULL)
14         {
15             return 0;
16         }
17         int iItemCount = pSubMenu->GetMenuItemCount();
18         for(int i = 0; i < iItemCount; ++i)
19         {
20             //清除该菜单中的项
21             pSubMenu->DeleteMenu(0, MF_BYPOSITION);
22         }
23         //加入新菜单项
24         pSubMenu->AppendMenuW(MF_POPUP|MF_STRING, (UINT)pSubMenu->m_hMenu, L"一级菜单");
25         CMenu* pMenuPop = pSubMenu->GetSubMenu(0);
26         if(pMenuPop != NULL)
27         {
28             pMenuPop->AppendMenuW(MF_STRING, (UINT)pMenuPop->m_hMenu, L"二级菜单");
29         }
30     }
31     return 0;
32 }

时间: 2024-12-18 20:15:26

MFC对话框动态添加菜单的相关文章

MFC对话框上添加PNG格式的图片的方法

使用CImage类 1.在stdafx.h中加入#include <atlimage.h> 2.在xxxdlg.h中添加CImage m_Img 3.在OnInitDialog中添加m_Img.Load(_T("res\\1.png")); 4.在OnPaint()添加显示png的代码: m_Img.Draw(GetDC()->m_hDC, 0,0); MFC对话框上添加PNG格式的图片的方法

如何在VS2010的VC++ 基于对话框的MFC程序中添加菜单

方法1:亲测 成功  转载自https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/48338f6b-e5d9-4c0c-8b17-05ca3ef1f761/vs2010dialog 你可以创建菜单作为一种资源,然后将它附加到对话框.打开dialog“属性”对话框,你可以看到一个Menu属性,最终我们将在这里指定一个我们自己创建的菜单ID. 具体步骤如下: •在资源视图中右键单击工程名,插入一个新的菜单.这个菜单会有一个ID(例如:IDR_M

MFC 单文档中动态添加菜单项和响应菜单事件

新建一个单文档程序 在查看菜单项中增加两个子菜单,分别为隐藏工具栏(ID_HIDE),新建菜单(ID_NEWMENU) 在Resource.h中增加一个ID_NEWMENU宏 #define ID_NEWMENU        WM_USER+101 操作工具栏和状态栏 使用GetDescendantWindow函数获取工具栏和状态栏的指针 为ID_HIDE添加消息映射,编辑代码如下 static bool m_Hide=false; m_Hide=!m_Hide; //获取工具栏指针 CWnd

winform Meunstrip 动态添加菜单(原)

界面放一个Meunstrip控键 //清空菜单项 private void CleaarMenuMain() { foreach (ToolStripMenuItem item in menuMain.Items) { item.DropDownItems.Clear(); item.Visible = true; } } //初始化菜单 private void InitMemuMain() { CleaarMenuMain(); ToolStripMenuItem tsmi; ToolStr

MFC中动态添加控件----寻找多年的秘籍,吐血推荐

原文作者tianwaik 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器(一般是对话框),这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示. 相比之下,静态控件不需要调用Create()函数来创建. 而创建动态控件有很大不同,以下以按钮为例,看一下

js动态添加菜单

<script type="text/javascript">window.onload = initForm; function initForm() { document.getElementById("months").selectedIndex = 0; document.getElementById("months").onchange = populateDays; } function populateDays() {

Delphi动态创建菜单

在程序运行中动态创建菜单,主要使用TMeunItem类,所有菜单的条目都是TMenuItem的一个实例. 打开Delphi7集成开发环境,在默认新建工程里,放置一个Button1按钮和MainMenu1菜单项,设置Button1的Caption属性为添加主菜单. 在Button1的Object Inspector选项卡设置Button1的OnClick响应事件,代码如下: procedure TForm1.Button1Click(Sender: TObject); var files,edit

MFC 对话框中动态创建N级菜单以及响应事件

创建一个基于对话框的工程,工程名为CreateMenu 为该对话框增加一个文件菜单项和测试菜单项,如下图所示   测试菜单项至少要有一个子菜单项 在对话框属性中关联该菜单 在resource.h中增加一个ID_TESTMENU宏 #define ID_TESTMENU          5000 在对话框中添加一个Button按钮,建立消息映射,编辑代码如下 void CCreateMenuDlg::OnButton1() { // TODO: Add your control notifica

MFC 对话框添加菜单

1.在Resource View 里右击菜单里选择Add Resource,选择menu,添加一个IDR_MENU1的菜单.在编辑器编辑菜单,添加菜单项,命名各个菜单项的ID. 2.在所要添加菜单的对话框界面 属性找到 “Menu"项, 此处选择刚才建好的菜单IDR_MENU1. 3.在对话框界面右击选择Class Wizard,Commands里面Object ID找到要添加消息响应的菜单ID,右边Messages选中COMMAND.点击Add Handler添加消息响应函数. void CM