vc中动态菜单的实现
2005-04-23 22:28
302 查看
如何在VC中实现动态菜单
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进行不同处理
}
}
}
以上是我在写动态菜单时的一点经验,欢迎你提出更好的解决方法.
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实现动态菜单的创建方法
- 如何在VC中实现动态菜单
- [导入]如何在VC中实现动态菜单
- VC中动态菜单的实现
- VC实现动态菜单的创建方法
- 二级动态菜单的实现
- VC 弹出菜单 动态添加二级菜单
- VC++中动态生成菜单技巧
- VC中数据的动态交换技术DDV\DDX的实现方法
- VC实现抽屉菜单
- PB中实现菜单的动态生成(函数递归实现)
- WTL中动态菜单的实现
- 框架 day54 BOS项目练习(权限/角色/用户管理(CRUD),基于数据库实现动态授权,ehcache缓存权限,shiro标签,菜单权限展示)
- jquery实现动态菜单
- jQuery 打造动态下滑菜单实现说明
- 使用ListAcyivity实现动态菜单列表
- vc下动态创建access数据库的实现
- dtree实现动态加载树形菜单,动态插入树形菜单
- C/S模式根据权限基于反射机制实现动态生成菜单
- jQuery实现响应鼠标背景变化的动态菜单效果代码