如何在VC中实现动态菜单

原创 2001年12月29日 00:35:00

 1.生成动态菜单
    
      先定义一个菜单类对象:CMenu m_menuMain;
      创建菜单:CreateMenu(CMenu *)创建一个普通菜单项
               CreatePopupMenu()创建一个弹出式菜单项
  
   2.使用菜单和应用程序挂钩
     
      可使用SetMenu(CMenu *)
  
   3.修改菜单项
     
      添加和插入可使用AppendMenu()和InsertMenu()
      删除可使用DeleteMenu()

   **4.动态菜单项的消息处理
  
      我们可以在OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* HandlerInfo)
中处理.
      参数中的nID就是发送过来的消息ID号,对于菜单,就是菜单的ID,如果nCode=CN_COMMAND表示单击菜单项发出的消息.
      下面是示例代码:
OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* HandlerInfo)
{
   WPARAM MenuId=GetCurrentMessage()->wParam;  //获得当前被单击的菜单的ID号
   if(MenuId>=ID_MENU)          //检查ID是否是动态建立的
   {
      if(MenuId==nID && nCode==CN_COMMAND)//菜单项被单击
     {
        CString strMenuName;  //菜单名
        GetMenu()->GetMenuString(MenuId,strMenuName,MF_STRING);
        //根据strMenuName进行不同处理
     }
   }
}

      以上是我在写动态菜单时的一点经验,欢迎你提出更好的解决方法.

VC++ MFC 系统菜单添加子菜单 CMENU submenu GetSystemMenu

在系统菜单怎么添加一个菜单我就不说了,网上比较多,但是也比较笼统,后面会有代码放出。这里主要说的是怎么添加子菜单,使用AppendMenu和InsertMenu都可以,然后在处理的时候判断ID就可以了...
  • lanmanck
  • lanmanck
  • 2016年08月05日 22:00
  • 1944

VC++中在对话框中动态显示图片

VC中要是想动态显示个图片是很麻烦的,可不是设置个文件路径就简单完事的。网上的资料很多,但是都是出于同一个地方,学习来的看不懂的还是看不懂。而且有些地方存在问题。所以我想把这个教程稍微完善下,不方便公...
  • buaaxiao
  • buaaxiao
  • 2010年08月13日 15:58
  • 6205

VC 动态创建菜单

步骤如下: (1)创建一个基于对话框的应用程序 (2)在对话框的头文件中声明一个CMenu类对象 m_Menu (3)在工作区窗口中选择FileView选项卡,打开资源头文件(Resource....
  • cc7829290
  • cc7829290
  • 2013年02月05日 13:54
  • 1956

VC实现抽屉菜单

用vc做了一个简单的抽屉菜单,界面非常简单,只是实现了功能而已。界面包括3个按钮,一个对话框。 下面讲解设计过程:1)在对话框类中加入如下变量 int m_left;    // 按钮的左边坐标 in...
  • momentt
  • momentt
  • 2008年12月15日 13:43
  • 2182

GUI.菜单栏

public class MenuFrame extends JFrame { private JMenuBar mBar;// 菜单栏 private JMenu fileMen...
  • qq635720747
  • qq635720747
  • 2016年05月08日 20:52
  • 442

使用XML生成菜单

使用XML生成菜单 直接在代码中添加菜单项,给菜单项分组等,这是比较传统的做法,它存在着一些不足。比如说,为了响应每个菜单项,我们需要用常量来保存每个菜单项的ID等。为此,Android提供了一...
  • qq_33990001
  • qq_33990001
  • 2016年04月13日 22:22
  • 483

VC中动态添加菜单及其命令响应函数

 在对话框程序中动态添加菜单及其命令响应函数,其实很简单,只要重写OnCommand函数就可以实现了。下面是具体的实现。在主对话框类中的OnInitDialog函数中添加如下的代码/*建立子菜单*/ ...
  • zhaoyc_59211
  • zhaoyc_59211
  • 2008年01月17日 21:45
  • 3890

VC++中动态生成菜单技巧

下载源代码 一.前言     在实际运用中,经常需要根据操作来增减菜单和菜单项。在VC++开发环境下,动态生成菜单的方法有多种。例如:可以利用资源编辑器创建菜单资源,然后在程序运行中动态加入菜单,...
  • liulina603
  • liulina603
  • 2012年05月31日 14:51
  • 4193

vc学习历程(3)--修改系统默认菜单

为了操作系统菜单,首先需要获取一个系统菜单的指针 可以通过GetSystemMenu  实现,然后利用菜单指针添加一个菜单项,最后在对话框的OnSysCommand方法中处理菜单项的命令;CMenu*...
  • lin_angle
  • lin_angle
  • 2007年08月22日 22:35
  • 2525

VC++实现弹出菜单(转)

用VC++实现弹出菜单比较简单,这里介绍其中的一种来实现一个鼠标左键弹出菜单,效果如下图所示: 步骤: 一、新建一个基于对话框的MFC应用程序-----PopupMenu 二...
  • adu285041555
  • adu285041555
  • 2013年02月25日 10:44
  • 670
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在VC中实现动态菜单
举报原因:
原因补充:

(最多只允许输入30个字)