MFC 菜单栏的使用
主要介绍两种比较简单和常用的创建方法。
一、在资源视图中添加菜单资源,通过鼠标点击添加菜单项
二、通过输入代码显示菜单栏
BOOL AppendMenu(hMenu hMenu,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem);
hMenu:将被修改的菜单条、下拉式菜单、子菜单、或快捷菜单的句柄。
UFlags:控制新菜单项的外观和性能的标志。此参数可以是备注里所列值的组合。
UIDNewltem:指定新菜单项的标识符,或者当uFlags设置为MF_POPUP时,表示下拉式菜单或子菜单的句柄。
LpNewltem:指定新菜单项的内容。
BOOL InsertMenu(UINt uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem);
uPosition:指定新菜单项将被插入其前面的菜单项,其含义由参数uFlagS决定。
uFlags:指定控制参数uPosition的解释的标志、新菜单项的内容、外观和性能。此参数必须为下列值之一和列于备注里的一个值的组合。
uIDNewltem:指定新菜单项的标识符,或者当参数uFlags设置为MF_POPUP时,指定下拉式菜单或子菜单的句柄。
LpNewltem:指定新菜单项的内容。其含义依赖于参数UFlags是否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。
熟悉几个nFlags标识符
MF_CHECKED:命令旁显示默认复选标志
MF_UNCHECKED:清除命令旁的复选标志
MF_DISABLED:禁止此菜单命令,但是不变灰显示
MF_ENABLED:允许此菜单命令,恢复到正常状态
MF_GRAYED:禁止此菜单命令,变灰显示
MF_MENUBARBREAK:对于静态菜单,放到新行;对于弹出菜单,放到新栏 中,栏间有分隔线
MF_MENUBREAK:对于静态菜单,放到新行;对于弹出菜单,放到新栏,栏间无分隔线
MF_OWNERDRAW:指定该命令是自画式菜单命令
MF_POPUP:指定该菜单命令有一个关联的弹出式菜单,即标准菜单,点击是显示其子菜单
MF_SEPARATOR:画一条水平分隔线,只用于弹出式菜单。
MF_STRING:指定此菜单命令是一个字符串 ,一般菜单可以设置响应函数。
定位到你想显示菜单栏的对话框的OnInitDialog()函数处,在其函数体里添加如下代码:
最后设置一般菜单项的响应函数:
END_MESSAGE_MAP()