文章类型: VC&C++
关键词: VC,动态创建菜单
内容摘要: VC 动态创建菜单

VC 动态创建菜单

2016/12/6 16:49:45    来源:apple    阅读:

步骤如下:

 

(1)创建一个基于对话框的应用程序

(2)在对话框的头文件中声明一个CMenu类对象 m_Menu

(3)在工作区窗口中选择FileView选项卡,打开资源头文件(Resource.h),在该文件中定义命令ID

#define ID_MENUCAT                      1001    //定义菜单命令ID  
#define ID_MENUDOG                      1002    //定义菜单命令ID  
#define ID_MENUMONKEY                   1003    //定义菜单命令ID

(4)在对话框的OnInitDialog方法中创建菜单

m_Menu.CreateMenu();          //创建菜单窗口  
CMenu m_PopMenu;         //定义菜单类对象  
m_PopMenu.CreatePopupMenu();   //创建弹出菜单窗口  
m_Menu.AppendMenu(MF_POPUP,(UINT)m_PopMenu.m_hMenu,L"动物");  //插入菜单  
m_PopMenu.AppendMenu(MF_STRING,ID_MENUCAT,L"猫");                //插入子菜单  
m_PopMenu.AppendMenu(MF_STRING,ID_MENUDOG,L"狗");                //插入子菜单  
m_PopMenu.AppendMenu(MF_STRING,ID_MENUMONKEY,L"猴子");            //插入子菜单  
m_Menu.AppendMenu(MF_POPUP,-1,L"植物");     //插入兄弟菜单  
m_PopMenu.Detach();                  //分离菜单句柄  
SetMenu(&m_Menu);                      //将菜单和窗口进行关联

  

 

注意:由于动态创建菜单是通过代码创建菜单项,所以不需要加载菜单资源

(5)在对话框的头文件中声明菜单的消息处理函数

afx_msg void OnMenucat();                       //声明菜单消息处理函数  
afx_msg void OnMenudog();                       //声明菜单消息处理函数  
afx_msg void OnMenumonkey();                    //声明菜单消息处理函数

(6)在对话框的源文件中添加消息映射宏,将命令ID关联到消息处理函数中

ON_COMMAND(ID_MENUCAT,OnMenucat)                                //声明菜单消息处理函数  
ON_COMMAND(ID_MENUDOG,OnMenudog)                                //声明菜单消息处理函数  
ON_COMMAND(ID_MENUMONKEY,OnMenumonkey)                      //声明菜单消息处理函数

 

(7)在对话框源文件中添加消息处理函数的实现代码

void CMy81Dlg::OnMenucat()          //"猫"菜单消息处理函数  
{  
    MessageBox(L"猫菜单被按下");  //菜单按下时弹出消息  
}  
  
void CMy81Dlg::OnMenudog()          //"狗"菜单消息处理函数  
{  
    MessageBox(L"狗菜单被按下");  //菜单按下时弹出消息  
}  
  
void CMy81Dlg::OnMenumonkey()       //"猴子"菜单消息处理函数  
{  
    MessageBox(L"猴子菜单被按下"); //菜单按下时弹出消息  
}

 

运行结果如下:

 

 


↑ 上一篇文章:vc 创建动态菜单及其响应函数 关键词:vc,动态菜单,菜单响应,动态菜单响应,动态按钮响应 发布日期:2016/12/6 15:59:46
↓ 下一篇文章:vc 动态创建对话框和按钮 关键词:vc,动态创建对话框和按钮 发布日期:2016/12/7 13:38:08
相关文章:
VC中,出现oxc0000005 读取位置oxddddddddd 时发生访问冲突,0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明 关键词:VC,oxc0000005,读取,位置,oxddddddddd,0x0000000,发生,访问,.. 发布日期:2018-07-27 10:58
如何将bmp格式的图片转换成8位256色且保证不失真呢 关键词:VC,ps,将,bmp图片,转换,8位,256色,不失真,faststone,image,vie.. 发布日期:2016-08-10 16:28
在VC的MFC中修改静态文本框中文字的字体、颜色 关键词:VC,MFC,修改,静态,文本框,文字,字体,颜色 发布日期:2017-11-29 16:43
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......