1 / 9
文档名称:

MFC菜单栏下拉菜单图片设置.docx

格式:docx   大小:140KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MFC菜单栏下拉菜单图片设置.docx

上传人:85872037 2017/2/23 文件大小:140 KB

下载得到文件列表

MFC菜单栏下拉菜单图片设置.docx

文档介绍

文档介绍:VC MFC 菜单栏(CMenu) 控件(2011-07-02 12:49) 分类: C++ 菜单栏在对话框窗口里显示菜单栏像工具栏一样,菜单栏在按件面板里没有对应的选项,但有一个菜单控件类 CMenu ,所以如果想要在对话框里显示菜单栏,就得像工具栏那样,到 ResourceView 选项卡里新建一个菜单栏资源,步骤跟新建工具栏资源一样,只是资源类型是: Menu, 菜单资源设计如下图: 如果想改菜单项文本内容的话,方法是右击要更改的菜单项,选择属性,接着会弹出这样一个对话框: 上面那个 ID 项就是该菜单项对应的 ID 号了,添加菜单项单击消息处理函数时会用到,而标明项里的内容就是菜单项要显示的文本了。这里还得注意一下“弹出”这个选项,勾上这个选项表明对应的菜单项还有下级菜单,如: 上面“转到”这个菜单项具有弹出属性,有下级菜单设计好了菜单资源,接着我们就来在对话框显示菜单栏吧,方法是进入对话框编辑区,右击对话框界面,选择属性,然后在菜单项里选择菜单资源 ID 号,回车,编译,运行,效果如下图: 当然还有第二种在对话框显示菜单的方法:调用 SetMenu 函数把菜单跟对话框关联起来, 函数第一个参数是窗口句柄,第二个参数是菜单句柄。在 OnInitDialog 函数里添加如下语句: CMenu menu;// 定义一个菜单类变量 (IDR_MENU1);// 装载 IDR_MENU1 菜单资源 SetMenu(&menu);// 和当前窗口关联起来 ();// 分离如果要处理菜单项单击消息的话,方法跟处理工具栏项单击消息一样,进入类向导,找到对应的菜单项 ID ,MAND 消息处理函数。设置菜单左边显示位图和背景位图 CMenu 类里要了解的函数 SetMenuItemBitmaps// 设置菜单项左边的位图函数定义: BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked ); nPostion 指明具体要设置的菜单项,可以是菜单项索引,菜单项 ID ,具体由 nFlags 参数指明,为 MF_BYPOSITION ,则以菜单项索引指明, 为 MAND 则第一个参数 nPosition 是菜单项 ID 号。 pBmpUnchecked 未被检测时显示的位图(正常时), pBmpChecked 检测时显示的图片(就是菜单项被打上勾时所显示的图片,跟 CheckMenuItem 函数有关联) 一个 API 函数 SetMenuInfo, 这个函数可以设置菜单重绘时选择的填充画刷类型,该函数有两个参数,第一个是要设置的菜单句柄,第二个是一个 MENUINFO 结构指针,我们只要了解这结构里有一个成员 hbrBack 就行了, hbrBack 是一个画刷句柄,而菜单背景位图就通过创建位图画刷来实现的。好了,以上面的工程为例, 引入三张位图, ID 号默认不变,然后再引入一张位图(菜单背景位图, ID:IDB_MENUBACK), 接着在对话框类的 OnInitDialog 函数里添加如下语句: CMenu *pMenu=GetMenu();/