您好,欢迎来到九壹网。
搜索
您的当前位置:首页VS2010 MFC 多文档添加菜单

VS2010 MFC 多文档添加菜单

来源:九壹网


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 C26: “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键即可。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务