- 浏览: 79555 次
- 性别:
- 来自: 北京
-
最新评论
-
herohuyongtao:
多谢, 正需要这个~
VS2008 C++ 调用MATLAB 2009b 生成的DLL -
lunan:
如果在头文件中我引用如下:#include "boo ...
boost::tuple -
lunan:
boost::bind是标准程序库std::bind1st与s ...
Boost::bind -
lunan:
http://hi.baidu.com/feiniaoah/b ...
VS2008 C++ 调用MATLAB 2009b 生成的DLL -
lunan:
VS下的VIM插件地址:http://www.viemu.co ...
在vs2008下编写linux程序(转)
文章列表
MFC 动态菜单 及响应
- 博客分类:
- MFC menu
东拼死凑应付工作,鄙视自己的急功近利
下面是代码:
//定义一个很大的ID
long ID_BEGIN = 10000;
在 tree view中添加 右键事件函数:
void CAboutDlg::OnNMRClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
CMenu menu1,menuMain;
//动态创建弹出式菜单对象-主
menu1.CreatePopupMenu();
menu1.AppendMenu(MF_STRING,ID_BEGIN+1,_T("菜单项1"));
men ...
MFC 动态菜单 及响应(转2)
- 博客分类:
- MFC menu
http://www.cnblogs.com/mx113/archive/2009/12/05/1617678.html
新建一个单文档程序
在查看菜单项中增加两个子菜单,分别为隐藏工具栏(ID_HIDE),新建菜单(ID_NEWMENU)
在Resource.h中增加一个ID_NEWMENU宏
#define ID_NEWMENU WM_USER+101
操作工具栏� ...
做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。
动态创建菜单需要先了解CMenu类。通常我们利用工具绘制一个菜单,每一个菜单项下都可以视为有一个CMenu类。它们联系在一起,形成树状。典型的一个菜单对应过来是如下图这个样子:
如上,CMenu可以分成 ...
#include "stdafx.h"
#include <string>
#include <iostream>
#include "boost/assign.hpp"
#include "boost/bind.hpp"
#include "boost/typeof/typeof.hpp"
#include "boost/assert.hpp"
#include <boost/foreach.hpp>
#include BOOST_TYPEOF_INCREM ...