当前位置:首页 > 4、菜单工具栏与状态栏
第 4 章 菜单、工具栏与状态栏
4.1 菜单 4.2 工具栏 4.3 状态栏 4.4 应用实例
内容:
1 什么是主菜单、弹出菜单、快捷菜单 2 如何编辑菜单项目
3 如何建立菜单项的消息映射 4 说明是菜单项的“命令消息”,“更新消息”
5 “更新消息”映射中有哪些函数可以用来修改菜单属性 6 菜单编程的流程是什么? 7 什么是工具条
8 如何编辑工具条按钮
9 如何建立工具按钮的消息映射 10 进行工具条编程的步骤是什么 11 什么是状态栏
12 如何增加状态栏窗格
13 如何在状态栏窗格中显示文字信息
4.1 菜单
菜单是窗口组件之一,为用户提供一种功能选项,用户操作菜单,使程序执行一项功能。 4.1.1 菜单的类型
常见菜单有3种:主菜单、弹出菜单和快捷菜单。 1.主菜单
指出现在应用程序主窗口或最上层窗口的菜单。通常对应有一个弹出菜单作为它的子菜单。 2.弹出菜单
指选择主菜单或一个菜单项时弹出的子菜单。 3.快捷菜单
当右击某个界面对象时,通常会弹出快捷菜单,它出现在鼠标箭头的位置,快速展示当前对象可用的命令功能。
菜单设计一般需要经过下面两步: (1) 使用菜单编辑器编辑菜单资源; (2) 使用ClassWizard进行消息映射,编辑成员函数,完成菜单所要实现的功能。
注意:在单文档程序模板(SDI)中,不能增加菜单资源,只能对已经有的菜单资源进行编辑修改
4.1.2 编辑菜单
使用菜单编辑器来编辑菜单资源。双击ResourceView视图中的Menu菜单资源,打开菜单编辑器。 1.插入新菜单项
在当前空白菜单项位置插入
选定窗口中的空白菜单项后按回车键(或双击空白菜单项),系统弹出菜单属性对话框。 在某菜单项前插入 2.属性对话框的设置
用于输入菜单项的标识符(ID)、标题(Caption)和菜单项在状态栏上显示的提示(Prompt)信息等。
3.调整菜单项位置
选中某菜单项将其拖至适当位置。 4.删除菜单项
用鼠标单击菜单项或用上、下、左、右光标键选择菜单项,然后单击Cut按钮或按Del键删除。 【例4.1】编写一个单文档应用程序MyDraw,在菜单栏中增加一个“绘图”主菜单,并在其中添加“矩形”和“椭圆”两个菜单项。
4.1.3 建立消息映射
添加新的菜单项后,还应该为菜单项指定一个处理函数,即利用ClassWizard类向导添加一个消息处理函数。
一个菜单项可以接收2个消息:
COMMAND 命令消息,对应用户选择菜单的操作
UPDATE_ COMMAND _UI 命令更新消息,对应菜单项被显示出来的事件。
同一时刻,命令消息只发生在一个菜单项上,但更新消息发生在多个菜单项上。
命令消息映射中的程序,用于实现用户功能
更新消息映射中的程序,用于实现菜单显示属性的修改
【例4.2】为例4.1中增加的菜单项添加消息处理函数。
4.1.4 菜单的有效控制
一般情况下,菜单项都不止一种状态。修改状态的方法: 1 创建菜单项的命令更新消息映射; 2 在映射函数中使用:
pCmdUI->SetCheck(true/false);//选中标记 pCmdUI->SetEnable(true/false);//有效标记
【例4.3】为例4.2的程序MyDraw添加更新用户界面的消息处理函数,使程序启动时菜单项【椭圆】处于不可用状态,当用户单击【矩形】菜单项后,在菜单项前显示 “√” 标记,并使【椭圆】菜单项变为可用。
总结:菜单编程的基本步骤为 在ResourceView打开主菜单资源
增加、删除、修改菜单条,设置其ID和标题 进入类向导,建立消息映射,根据需要增加命令消息映射或命令更新消息映射
在映射函数中编写程序,实现该菜单所需要的功能
4.2 工具栏
工具条是窗口组件之一,上面包括多个按钮,用户通过选择按钮,选择程序功能的执行。 工具条使用分2种情况:
使用单文档程序所生产的工具条,注意不能删除这个工具条。 增加新的工具条资源,编写建立工具条对象所需要的程序代码。
4.2.1 编辑工具栏
使用工具栏编辑器来编辑工具栏资源。双击ResourceView视图中的Toolbar工具栏资源,即可打开工具栏编辑器。 1.添加按钮
双击工具条上的空白按钮或单击空白按钮后,选择【View|Properties】菜单项,弹出如图所示的Toolbar Button Properties属性对话框,在此对话框中编辑按钮的标识符、宽度与高度值。 2.删除按钮
将按钮拖出工具栏外,即可删除该按钮。 3.编辑按钮位图
设置按钮位图有以下两种方法。
l 利用绘图工具与调色板直接进行绘制
l 先利用专用绘图软件制作,然后粘贴到按钮上 4.2.2 建立消息映射
通常,只需让一个按钮的ID值与同样功能菜单项的ID值相同即可。
如果按钮没有对应菜单项,则必须利用ClassWizard类向导添加一个消息处理函数。 【例4.8】 编写一个单文档应用程序Li4_8。删除默认工具栏上的【打印设置】按钮,并在【帮助】按钮前添加【上一页】和【下一页】2个按钮,当用户单击这两个按钮后,视图中分别显示文本“这是《上一页》按钮!”和“这是《下一页》按钮!”。
4.2.3 自定义工具栏的操作(略)
向导生成的标准工具栏的ID值为IDR_MAINFRAME。 对一些功能复杂的应用程序,需要创建多个不同的工具栏。 工具栏的功能由类CToolBar实现。工具栏资源和工具栏类CToolBar是工具栏的两个要素。创建工具栏的基本步骤是: 1 创建工具栏资源;
2 构建一个CToolBar对象;
3 调用CToolBar::Create( )或CreateEx( )函数创建工具栏窗口;
4 调用CToolBar::LoadToolBar载入工具栏资源。
共分享92篇相关文档