使用Windows标准控件
我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。在Visual C++中,可以使用的控件分成三类:
新桃换旧符
(1) Windows标准控件
Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。
表6.1 Windows标准控件
控件 MFC类 描述
动画 CAnimateCtrl 显示连续的AVI视频剪辑
按钮 CButton 用来产生某种行为的按钮,以及
复选框、单选钮和组框
组合框 CComboBox 编辑框和列表框的组合
编辑框 CEdit 用于键入文本
标题头 CHeaderCtrl 位于某一行文本之上的按钮,可
用来控制显示文件的宽度
热键 CHotKeyCtrl 用于通过按下某一组合键来很快
的执行某些常用的操作
图象列表 CImageList 一系列图象(典型情况下是一系
列图标或位图)的集合。图象列表
本身不是一种控件,它常常是和
其它控件一起工作,为其它控件
提供所用的图象列表资源需求计划
列表 CListCtrl 显示文本及其图标列表的窗口
列表框 CListBox 包括一系列字符串的列表
进度 CProgressCtrl 用于在一较长操作中提示用户所
完成的进度
多格式文本编辑 CRichEditCtrl 提供可设置字符和段落格式的文
本编辑的窗口
滚动条 CScrollBar 为对话框提供控件形式的滚动条
滑块 CSliderCtrl 包括一个有可选标记的滑块的窗
摩诃般若波罗蜜口
旋转按钮 CSpinButtonCtrl 提供一对可用于增减某个值的箭
头
静态文本 CStatic 常用于为其它控件提供标签
状态条 CStatusBarCtrl 用于显示状态信息的窗口,同MFC
类CStatusBar类似
续表6.1 控件 MFC类 描述
选项卡 CTabCtrl 在选项卡对话框或属性页中提供
具有类似笔记本中使用的分隔标
签的外观的选项卡
工具条 CToolBarCtrl 具有一系列命令生成按钮的窗口,
同MFC类CToolBar类似
工具提示 CToolTipCtrl 一个小的弹出式窗口,用于提供对
工具条按钮或其它控件功能的简
单描述
树 CTreeCtrl 用于显示一系列的项的继承结构
前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。Windows 标准控件在以下环境下提供:
•Windows 95
•Windows NT 3.51及以后版本
•Win32s 1.3
•注意:
•Visual C++ 4.2及以后版本不再支持Win32s。
(2) ActiveX控件
ActiveX控件可用于对话框中,也可用于HTML文档中。这种控件过去被称为OLE控件。本书将在专门的章节中来讲述关于ActiveX控件的知识。这里仅指出ActiveX控件使用了与标准控件完全不同的接口
和实现方法。
(3) 其它MFC控件类
就业创业除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:
•类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。
•类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。
任命文件•类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。
在本章我们仅讲述第一类控件,即Windows标准控件。所涉及的内容包括各个控件的使用及相应的技巧。
识图百度识图第一节 使用对话框编辑器和ClassWizard
对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它们添加到对话框中。
图6. 1 在ResourceView中选择对话框
IDD_DIALOGDEMO_DIALOG
图6. 2 控件的Properties对话框
图6. 3 对话框编辑器的Controls工具窗口
在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于对话框的MFC框架应用程序的主对话框窗口中。绳成语
1. 首先,在Workspace窗口的ResourceView选项内双击DialogDemo resources\Dialog节点下的IDD_DIALOGDEMO_DIALOG图标。上面的操作如图所示。
2. 用鼠标选中标有“要做……”的静态文本控件。右击鼠标,从上下文菜单中选择Properties,打开如图6.2所示的对话框,在Caption文本框中输入新的控件文本:“在下面的文本框中输入一些字符”,然后将静态文本控件拖动到对话框的左上角。
3. 从Controls工具窗口(如图6.3所示,如果在你的资源编辑器中看不到该工具窗口,可以在工具条上右击鼠标,从上下文菜单中选择Controls)中选择编辑控件图标,在对话框中绘制一个编辑框控件,如图6.4所示。
在该编辑框控件的Properties窗口的General选项卡中输入其ID为IDC_EDIT。然后在Styles选项卡下将Multiline复选框划上勾,并消除Auto HScroll复选框前的勾。
4. 右击该编辑框控件,从上下文菜单中选择ClassWizard命令,打开ClassWizard对话框,该对话框看
起来如图6.5所示。
图6. 4 向对话框中添加一个编辑框控件
春朱自清
图6. 5 ClassWizard对话框
单击Member Variables选项卡,确信在Project处选择了DialogDemo,在Class name处选择了CDialog
DemoDlg。现在我们为刚才添加的编辑框控件IDC_EDIT添加一个数据映射入口。在Control IDs处选择IDC_EDIT,单击右边的Add Viable按钮。打开如图6.6所示的对话框。
在Member variable name处链接变量名m_strEdit (这里m表示该变量为类CDialogDemoDlg的一个成员变量,str表明其类型为字符串,即类CString),在Category下拉列表中选择Value (另一种选择是Control,两种选择的不同将在后面的内容中讲述),在Variable type下拉列表中选择CString (还有其它很多数据类型可供选择,但由于这里编辑框中的内容为一字符串,因此CString 是最恰当的选择)。单击OK关闭对话框。
图6. 6 为控件映射添加成员变量
5. 检查一下现在的ClassWizard对话框(图
6.7)与图6.5相比有何不同。在图6.7所示的对话框中下方的Maximum characters文本框中输入50。由字面意思可以很容易猜出其含义,即将编辑框IDC_EDIT中可能的最长字符串的大小限制为50。单击OK关闭对话框。
图6. 7 使用ClassWizard设置数据验证方案
6. 从Workspace窗口的ClassView中双击类CDialogDemoDlg的OnInitDialog成员函数,使用下面的代码来代替位于语句
return TRUE;
前的// TODO注释: