VS2010 MFC 多文档添加菜单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VS2010添加菜单
MFC class wizard(类向导)
project:当前工程名
class name:需要编辑消息映射(将消息与处理函数一一对应)的类名
object ID:该类中当前可以产生消息的对象ID。
Message:该对象能产生的消息
Member function:该类的成员函数。
可以添加(Add function),删除(Delete fun…)。
Add class:添加新的类。
右下有个小箭头,可以选择‚new‛或从类库中导入。
SDI:单文档MDI:多文档
1.创建MDI工程:
打开VS2010,文件,新建,project,选MFC应用程序(MFC AppWizard),填入名称:Menu1,确定。
选多个文档,完成。
编译运行一下,弹出的窗口是Menu11:
2.完成后在左侧点资源视图,Menu,IDR_Menu1TYPE,会发现,Menu框架中已经有了‚文件,编辑,视图,帮助‛等菜单。
单击‚帮助‛后面的‚请在此处输入‛,并输入‚Movie(&M)‛,输入(&M)的作用是用户可通过‚Alt+m‛直接打开该菜单项,输入后‘&’自动消失。
左下角的‚菜单编辑项‛中,enable和popup默认为true。
因为Popup为true,即允许有子菜单弹出,所以不用输入ID,下面杂项的ID 为‚无法编辑ID‛。
2.单击Movie下面的框,并在里面输入‘赤壁之战(&C)’。
(&C)表示直接在键
盘上按‘C’,即可选择‚赤壁之战‛。
这时,他变成了这个样子,并且左下角的‘菜单编辑器’里出现了内容。
在菜单编辑器里,注意到popup为false,这是可以编辑ID,向下拉菜单,在‚杂项‛中,将ID改为ID_MOVIE1,在Prompt中填入‚打开赤壁电影‛。
此处,直接单击,就可以修改或输入。
3.为菜单添加消息处理函数
直接在最上一行菜单栏选‘项目’,类向导,弹出class wizard。
类名为CMenu1App,对象(ID)选ID_MOVIE1,消息(S)选COMMAND。
添加处理程序,成员函数名‚OnMovie1‛,确定。
在成员函数中,出现了OnMovie1,选择它,点‚编辑代码‛。
自动进入Menu1.cpp,并出现了OnMovie1():
在OnMovie1函数中输入代码:
void CMenu1App::OnMovie1( )
{
MessageBox(0,‚太经典了!‛,‚赤壁之战‛,MB_OK);
}
此时编译运行,点这个。
如果此时MessageBox有Error,可能是字符串的问题:
error C2664: “MessageBoxW”不能将参数从”const char [9]”转换为”LPCWSTR”与指向的类型无关。
转换要求reinterpret_cast、C 样式转换或函数样式转换。
解决方法一:最上一行菜单,项目,Menu1属性,配置属性,常规,字符集‚使用多自己字符集‛
解决方法二:在新建项目时,将‚使用Unicode库‛的对号去掉。
若有错误:
LINK : fatal error LNK1168: 无法打开“F:\learn\Menu1\Debug\Menu1.exe”进行写入解决方法:ctrl+alt+del,启动任务管理器,找到Menu1,结束进程。
运行程序,点movie 赤壁之战,弹出MessageBox“太经典了”:
删除菜单,按del键即可。