第五章菜单、工具栏和状态栏.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章菜单、工具栏和状态栏

第5章菜单、工具栏和状态栏;*;2.弹出菜单 指选择主菜单或一个菜单项时弹出的子菜单。 3.快捷菜单 当右击某个界面对象时,通常会弹出快捷菜单,它出现在鼠标箭头的位置,快速展示当前对象可用的命令功能。 ;*;对于菜单的显示都遵循下列一些规则: 若点击某菜单项会弹出一对话框,那么在该菜单项文本后有“…”。 若某项菜单有子菜单,那么在该菜单项文本后有“?”。 菜单项需要助记符,用括号将带下划线的字母括起来。助记符与Alt构成一个组合键,当按住“Alt”键不放,再敲击该字母时,对应的菜单项就会被选中。 若某项菜单需要快捷键的支持,则一般将其列在相应菜单项文本之后。任何时候按下快捷键,相应的菜单命令都会被执行。 ;创建菜单 在系统自动生成的菜单资源中添加一个主菜单命令 IDR_MAINFRAME菜单是MFC AppWizard的单文档应用程序自动创建的一个默认的主菜单。 双击该菜单资源名称,可以打开菜单编辑器。 在菜单编辑器中,为程序添加自己的菜单命令;*; ID(菜单命令的ID) ID_顶层菜单名_下一级菜单名(_再下一级菜单名…) Caption (菜单命令的名称) 快捷键设置—在菜单标题中相应的字母前输入“”即可。还可以加上菜单项的加速键“\tCtrl+C” ,可以再不打开菜单的情况下直接执行菜单命令,“\t”为制表符。 Separator(分隔线):该项值为True,则菜单命令变成一个分隔线,而原有菜单命令信息丢失。如想对菜单命令分组,可以使用分隔线。; Popup(弹出式)。该项值为True,菜单命令将成为弹出式菜单,即单击次菜单会掏出下一级菜单。弹出式菜单不需要制定ID号。VS2010默认顶层菜单为弹出式菜单。 Inactive(不活动)。该项值为True表明菜单命令的初始状态为非活动状态。 Checked(检查标记)。该项用来给菜单一个初始的检查标记,其值为True,则会在菜单命令的左侧打上一个勾。 Grayed(变灰)。该项值为True,则该菜单命令将以灰色显示,表明菜单的初始状态为不可访问。如果该项值为True,那么菜单一定不是活动的,此时“Inactive”项不可用。; Help(帮助形式)。该项值为True,则该菜单会显示在菜单栏的有侧。 Break(菜单命令的分隔)。当一个菜单的菜单命令太多时,放在一列中会感觉很长,很拥挤,这时可以考虑把它分成两列来显示。有三种选择方式:None, Column, Bar Prompt(菜单命令功能的提示)。程序运行时,当鼠标指针移到菜单命令上时,在底部的状态栏会给出此菜单的功能提示;;菜单设计一般需要经过下面两步: 使用菜单编辑器编辑菜单资源; 右键点击菜单项-添加事件处理函数。 ;【例】在一个单文档应用程序中添加一个“画图”主菜单,为其添加具有“直线”和“矩形”两个菜单项弹出菜单。 建单文档应用程序MyMenu 打开菜单编辑器,编辑菜单项 打开“资源视图”中“Menu”文件夹,双击IDR_MAINFRAME打开菜单编辑器。 运行程序 ;菜单的响应和消息路由;;步骤如下: 打开MyMenu应用程序 建立WM_COMMAND命令消息映射 1.在“直线”菜单项上单击鼠标右键,选择“添加事件处理程序”,弹出“事件处理程序向导”对话框。 2.在“类列表”中选择要添加响应函数的类“CMainFrame”,在“消息类型”中选择“COMMAND”,单击“添加编辑”按钮,即为“直线”菜单项在“CMainFrame”类中添加了一个WM_COMMAND类型的消息处理函数“OnLine”。 编辑消息处理函数。 在void CMainFrame::OnLine()函数中添加代码 MessageBox(_T(您选择了画直线的操作!)); ;同样的方法可以添加矩形的消息响应函数。 运行界面如下:;消息映射从代码上来看,对应着3个部分的代码: 在响应这个菜单命令的类的声明中添加一个响应函数的声明 afx_msg void OnLine(); 在该类的实现文件中,在这个类的消息映射表中添加这个菜单的映射宏 ON_COMMAND(ID_LINE, CMainFrame::OnLine) 在该类的实现文件中,为响应函数添加实际的响应代 void CMainFrame::OnLine() { MessageBox(_T(您选择了画直线的操作!)); } 因此,也可以不使用类向导,自己添加上述三部分代码,完成同样的功能。 ;加速键 用于实现对快捷键的设置。 ;为程序MyMenu中添加的两个菜单项添加加速键。 打开加速键列表 在“资源视图”中双击 “Accelerator”文件夹下的“IDR_MAINFRAME”,打开加速键列表。 编辑加速键资源 三个菜单

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档