按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
具有类似笔记本中使用的分隔标
签的外观的选项卡
工具条 CToolBarCtrl 具有一系列命令生成按钮的窗
口,同MFC类CToolBar类似
工具提示 CToolTipCtrl 一个小的弹出式窗口,用于提供
对工具条按钮或其它控件功能的
简单描述
树 CTreeCtrl 用于显示一系列的项的继承结构
前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它
也是所有控件类的基类。Windows标准控件在以下环境下提供:
l Windows 95
l Windows NT 3。51及以后版本
l Win32s 1。3
l 注意:
l Visual C++ 4。2及以后版本不再支持Win32s。
(2) ActiveX控件
…………………………………………………………Page 293……………………………………………………………
ActiveX控件可用于对话框中,也可用于HTML文档中。这种控件过去
被称为OLE控件。本书将在专门的章节中来讲述关于ActiveX控件的知
识。这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实
现方法。
(3) 其它MFC控件类
除了Windows标准控件和自己编写的或者来自于第三方软件开发商的
ActiveX控件以外,MFC还提供了另外三种控件,它们由下面的三个类
进行封装:
l 类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多
可以包括四个位图图片,分别代表按钮的四种不同状态。
l 类CCheckListBox用于创建选择列表框,这种列表框中的每一项前
面有一个复选框,以决定该项是否被选中。
l 类CDragListBox用于创建一种特殊的列表框,这种列表框允许用
户移动列表项。
在本章我们仅讲述第一类控件,即Windows标准控件。所涉及的内容
包括各个控件的使用及相应的技巧。
第一节 使用对话框编辑器和ClassWizard
对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它
们添加到对话框中。
图6。 1 在ResourceView中选择对话框
IDD_DIALOGDEMO_DIALOG
…………………………………………………………Page 294……………………………………………………………
图6。 2 控件的Properties对话框
图6。 3 对话框编辑器的Controls工具窗口
在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于
对话框的MFC框架应用程序的主对话框窗口中。
1。 首先,在Workspace窗口的ResourceView选项内双击DialogDemo
resourcesDialog节点下的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所示。
…………………………………………………………Page 295……………………………………………………………
图6。 4 向对话框中添加一个编辑框控件
图6。 5 ClassWizard对话框
单击Member Variables选项卡,确信在Project处选择了
DialogDemo,在Class name处选择了CDialogDemoDlg。现在我们为刚
才添加的编辑框控件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关闭对话框。
…………………………………………………………Page 296……………………………………………………………
图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注释:
m_strEdit=〃您好! 请在这里输入一些字符串。〃;
UpdateData(FALSE);
…………………………………………………………Page 297……………………………………………………………
7。 在ClassView中双击类CDialogDemoApp的InitInstance成员函数,
使用下面的代码来找替位于选择支
if (nResponse == IDOK)
下的//TODO注释:
AfxMessageBox(dlg。m_strEdit);
然后将同一成员函数中的下面的代码行删掉 (或注释掉):
m_pMainWnd = &dlg;
8。 编译并运行该应用程序。显示如图6。8所示的对话框。
图6。 8 示例程序DialogDemo的运行结果
在图6。8所示的文本框中输入一些字符,单击 “确定”。随即弹出如
图6。9所示的消息框。该消息框复述了用户在图6。8所示的对话框中的
输入。我们还发现,在图6。8所示的对话框中,当输入字符串达到一
定的长度之后,我们不可以再输入更多的字符,这是我们在前面设置
了Maximum characters为50的结果。
图6。 9 以消息框的形式反馈输入的字符串
下面我们来看在上面的步骤中都完成了什么。首先我们使用资源编辑
器向对话框模板中添加这些标准控件,这一步的概念很清晰,因此并
不难理解。
然后,我们打开了所绘制的编辑框的Properties (属性)对话框。