在“消息与命令”一章中,初步介绍了在MFC应用程序中如何使用菜单和工具栏进行工作。实际上,有关改进程序界面方面的知识还有很多。本章中详细介绍如何改进应用程序的界面,使之具有更好的用户交互性。
在Windows应用程序中,工具条、状态条或对话框条等是经常可见的,为用户提供了快速选择程序功能的能力。在MFC基本类库中,工具条、状态条和对话框条都是控制条的子类。MFC对控制条提供了很好的支持,在下面的几节中,我们将比较详细地介绍控制条的有关知识。
控制条类(CControlBar)是工具条类(CToolBar)、状态条类(CStatusBar)和对话框条类(CDialogBar),以及Visual C++ 6.0中新增的集合条类(CReBar)的父类,同时,CControlBar类由CWnd类派生,图8-1显示了有关CControlBar的继承关系。

图8-1 CControlBar类的继承关系
由于CControlBar类是CWnd类的子类,因此,控制条通常都是一个停泊在主框架窗口四周的小窗口。控制条可以包含基于hWnd句柄的控件,这些控件都是Windows窗口,可以产生和响应Windows消息;控制条也可以包含非基于hWnd句柄的项,这些项通常有应用程序类或主框架窗口类来管理。比如说,列表框和文本框就是基于hWnd句柄的控件,而状态条面板和图象按钮则是非基于hWnd句柄的项。
CControlBar类为其子类提供了基本的功能,如在父窗口中的合适位置停泊等。由于控制条通常都是其父框架窗口的一个子窗口,因此,它是视图或MDI子窗口的“同胞”。控制条对象使用其父框架窗口的客户区域的信息来定位其自身,因此,其父框架窗口的客户区域将随着控制条的停泊位置的改变而改变。