- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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”,打开加速键列表。
编辑加速键资源
三个菜单
您可能关注的文档
- 第二节二叉树及其基本性质.ppt
- 第二节体液免疫-细胞免疫.ppt
- 第二节光电效应和康普顿效应.ppt
- 第二章选区的绘制与操作.ppt
- 第二节原子结构-元素养.ppt
- 第二节__从种到界.ppt
- 第二节原子结构-元素周期表.ppt
- 第二节免疫-的计划免疫.ppt
- 第二组广告_公益广告节约用水.ppt
- 第二节汉字的形体构造.ppt
- 浙江省县域教研联盟2024-2025学年高三上学期12月模拟考试技术试题-高中信息技术2.docx
- 湖南省岳阳市云溪区2024-2025学年高三上学期11月期中地理试题.docx
- 浙江省杭州市北斗联盟2024-2025学年高一上学期期中联考政治试题2.docx
- 广东省肇庆市实验中学高三理科化学第16周限时训练.doc
- 黑龙江省牡丹江市第一高级中学2024-2025学年高一上学期11月期中地理试题2.docx
- 云南省玉溪市峨山一中2017-2018学年高二四月份月考生物试题.doc
- 山东省实验中学高三第三次诊断考试历史试题.docx
- 山东省菏泽第一中学2024-2025学年高二上学期第一次月考历史试题含答案.docx
- 山东省菏泽市2024-2025学年高一上学期11月期中数学试题(A)含解析.docx
- 安徽省六安市舒城中学高三仿真(一)文科综合试题.doc
文档评论(0)