按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
IDC_PHYSICAL_MEM 和IDC_DISK_SPACE ,配合System Info for About Dlg 组件的建
议。
TEST。CPP
在CAboutDlg::OnInitDialog 中利用SetDlgItemText 设定稍早我们为对话窗画面新增的
两个static 控制组件的文字内容(ponent Gallery 已经为我们做出这段程序代码,只是
暂时把它标记为说明文字。我只要把标记符号// 去除即可):
BOOL CAboutDlg::OnInitDialog()
{
。。。
SetDlgItemText(IDC_PHYSICAL_MEM; strFreeMemory);
。。。
SetDlgItemText(IDC_DISK_SPACE; strFreeDiskSpace);
}
return TRUE; // CG: This was added by System Info ponent。
}
820
…………………………………………………………Page 883……………………………………………………………
16 ponents & ActiveX Controls
第 章 站眾的肩膀 使用
Test 修改结果
一切尽如人意。现在我们有了理想的Splash Screen 画面如前所述,也有了Tips of the
Day 对话窗:
以及一个内含系统信息的About 对话窗:
821
…………………………………………………………Page 884……………………………………………………………
第篇 深入 MFC 程式設計
使用ActiveX Controls
Microsoft 的Visual Basic 自1991 年推出以来,已经成为Windows 应用软件开发环境
中的佼佼者。它的成功极大部份要归功于其开放性质:它所提供的VBXs 被认为是一种
极佳的对象导向程序设计架构。VBX 是一种动态联结函数库(DLL ),类似Windows 的
订制型控制组件(custom control )。
VBX 不适用于32 位环境。于是Microsoft 再推出另一规格OCX 。不论是VBX 或
OCX ,或甚至Borland 的VCL,都提供Properties…Method…Event (PME)接口。Visual Basic
之于VBX ,以及Borland C++ Builder 和Delphi 之于VCL,都提供了整合开发环境
(IDE)与PME 接口之间的极密切结合,使得程序设计更进一步到达「以拖拉、填单等
简易动作就能够完成」的可视化境界。也因此没有人会反对把Visual Basic 和Delphi 和
C++ Builder 归类为RAD (Rapid Application Development ,快速软件开发工具)的行列。
但是Visual C++ 之于OCX ,还没能够有这么好的整合。
我怎么会谈到OCX 呢?本节不是ActiveX Control 吗?噢,OCX 就是ActiveX
Control !由于微软把它所有的Internet 技术都称为ActiveX ,所以OLE Controls 就变成
了ActiveX Controls 。
我不打算讨论ActiveX Control 的撰写,我打算把全部篇幅用到ActiveX Control 的使用
上。
如果对ActiveX Control 的开发感兴趣,Adam Denning 的ActiveX Control Inside Out 是
一本很不错的书(ActiveX 控制组件彻底研究,侯俊杰译/ 松岗)
822
…………………………………………………………Page 885……………………………………………………………
16 ponents & ActiveX Controls
第 章 站眾的肩膀 使用
ActiveX Control 基础观念:Properties 、Methods、Event
你必须了解ActiveX Control 三种接口的意义,并且充份了解你打算使用的某个ActiveX
Control 有些什么特殊的接口,然后才能够使用它。
基本上你可以拿你已经很熟悉的C++ 类别来比较ActiveX control 。类别也是一个包装良
好的组件,有它自己的成员变量,以及处理这些成员变量的所谓成员函数,是个自给自
足的体系。ActiveX control 的三个接口也有类似性质:
■ property 相当于C++ 类别的成员变量
■ method 相当于C++ 类别的成员函数
■ event 相当于Windows 控制组件发出的notification 消息
ActiveX Control 规格中定有一些标准的(库存的)接口,例如BackColor 和FontName
等properties ,AddItem 和Move 和Refresh 等methods ,以及CLICK 和KEYDOWN 等
events 。也就是说,任何一个ActiveX Control 大致上都会有一些必备的、基础的性质和
能力。
以下针对ActiveX Control 的三种接口与C++ 类别做个比较。至于它们的具体展现以及
如何使用,稍后在实例中可以看到。
CObject
CObject
CCmdTarget
CCmdTarget
CWnd
CWnd
CButton
CButton
CEdit
CEdit
CListBox
CListBox
COleControl
COleControl
。。。
823
…………………………………………………………Page 886……………………………………………………………
第篇 深入 MFC 程式設計
methods
设计自己的C++ 类别,你当然可以在其中设计成员函数。此一函数之调用者必须在编
译时期知道这一函数的功能以及它的参数。搭配Windows 内建之控制组件(如Edit 、
Button )而设计的类别(如CEdit、CButton),内部固定会设计一些成员函数。某些成
员函数(如CEdit::GetLineCount)只适用于特定类别,但某些根类别的成员函数(例如
CWnd::GetDlgItemText)则适用于所有的子类别。
ActiveX Control 的method 极类似C++ 类别中的成员函数。但它们被限制在一个有限
的集合之中,集合内的名单包括AddItem 、RemoveItem 、Move 和Refresh 等等。并不是
所有的ActiveX Controls 都对每一个method 产�