下载
第 5 章 菜单、控件条和状态栏
菜单和控件条(如工具栏)代表了一种用户与应用程序之间交互的基本方式。 A p p Wi z a r d会
自动地给应用程序添加通用菜单、工具栏和状态栏。但是,这些菜单、工具栏和状态栏与用
户在Developer Studio中使用的菜单和控件条相比就显得非常“暗淡无光”。然而通过一些小
小的努力,就可以给应用程序添加外观与通用菜单相同的菜单和控件条。本章包括以下具体
实例:
实例7 在菜单中添加图标,可以模仿在 Developer Studio的菜单中看到的图标。
实例8 调整命令条外观,可以模仿在 Developer Studio中看到的工具栏的外观。
实例9 创建可编程工具栏,可以模仿在 Developer Studio中工具栏的“感觉”—用户可以
从工具栏按钮库中给工具栏选择并设置一个表示其功能的名字。
实例10 在对话框应用程序中添加一个工具栏和状态栏,这里将给对话框应用程序手工
添加一个工具栏和状态栏。
实例11 给弹出菜单添加一个位图标记,并沿着弹出菜单的边界绘制一幅位图。
实例12 在工具栏中添加下拉按钮 (Dropdown Button),创建两个工具栏按钮,用它们来
创建看起来像是从工具栏下拉 (drop down)的弹出菜单。
实例13 在状态栏中添加一个图标,本实例在状态栏中添加一个状态图标。
实例14 使用伸缩条 ( R e b a r ) ,给应用程序添加一个伸缩条,并用工具栏和对话框条填
充它。
5.1 实例7:在菜单中添加图标
1. 目标
模仿Developer Studio中的菜单,在每个菜单项旁边显示一个图标,而且这些菜单都有一
个工具栏按钮,如图5 - 1所示。
2. 策略
上面所看到的菜单是一个自绘制 ( o w n e r- d r a w n ) 的菜
单。为了创建一个自绘制的菜单,必须在一开始时就在每
个菜单项中设置一个选项,告诉系统这是一个自绘制的菜
单。由于在应用程序中没有提供菜单编辑器,因此必须动
态地完成这些事情。然后自绘制菜单就向自己的窗口发送
两个消息( W M _ M E A S U R E I T E M 和W M _ D R AW I T E M ) 并
通过绘制菜单项时来处理该消息。本例将所有这些功能都
封装到从M F C 的C M e n u 类派生的菜单类中。这个新类中
的I n i t M e n u ( ) 函数不仅为每个菜单项进行标记表示该菜单
为自绘制菜单,而且还将菜单命令和它们的相对应工具栏匹配起来,同时还将在绘制菜单项
时使用匹配的工具栏按钮位图。
图5-1 在菜单中添加图标
在本例中,将在与工具条功能等效
的菜单旁边绘制相同的工具条图标