📄 untitled-09.txt
字号:
个边上或浮在它自己的窗口上吗?没有问题: MFC提供了一个CToolBar类,它可以为您做
大量的工作。需要一个链接的列表或可调整尺寸的数组?这也容易:CList、CArray以及其
他MFC集合类为您的数据提供了封装的容器。另外,别忘了COM、OLE以及ActiveX。在我
们之中,很少有人希望或知道如何从头开始编写ActiveX。在COleControl和COlePropertyPags
等等这样的类中,MFC提供了您所需的大量代码,从而简化了ActiveX控件的开发。
使用MFC的另一个优点是框架结构使用了很多技巧,使Windows对象,如窗口、对话框
以及控件变得如同 C+十中的对象了。假定您想编写一个可重复使用的列表框类,用来显示
一个可测览的、能显示PC主机中的驱动器和目录的列表。除非创建一个自定义控件来进
行此工作,否则您无法用C来实现这样的列表框,这是因为在列表框中单击某一项会发送
一个通知给列表框的父亲(列表框出现的对话框或窗口),父亲将处理那份通知。换句话说,
列表框控件控制不了自己的命运;当驱动器或目录被改变时,是父亲来更新列表框中的
内容。
用MFC则不会这样。在MFC应用程序中,窗口和对话框将发送给它们的未处理的通
知反射回发送通知的控件。通过从CliXtBOX派生出您自己的列表框类,您可以创建一个自
含的且高度可重用的列表框类来响应通知。结果列表框实现了自己的行为,并可以通过仅
仅在源代码文件添加一条# include语句来把它移植到另外一个应用程序中。这就是可重用
性的实质。
1.2.2 MF,C的设计思想
在Microsoft的程序员开始创建MFC时,他们对未来的看法包括以下几个设计目标:
.MFC应该给Windows操作系统提供一个面向对象的接口,支持可重用性、自包含性
以及其他00P原则。
.实现上述目标的前提是不需要强加给系统过多的工作,或不增加应用程序对内存
的不必要的开销。
第1个目标的实现可通过编写类来封装窗口、对话框以及其他对象,并引人某些关键的
虚函数(覆盖这些虚函数可以改变派生类的功能)来完成。第2个目标要求MFC设计人员
尽早就如何将窗口、菜单以及其他对象被 MFC类(如 CWnd和 CMenu)包装作出选择。有效
使用内存在当时是很重要的,今天也很重要,因为没人会喜欢产生臃肿代码的类库。
MFC设计者所用的使类库带来的总开销减到最小的方法之一在MFC对象与Windows
对象之间的关系中得到了体现。在Wndows中,有关窗口特性和目前状态的信息被保存在
操作系统拥有的内存中。这些信息对应用程序是隐藏的,应用程序只能处理窗口句柄或
HWND。MFC并没有复制在CWnd类的数据成员中的与HWND有关的所有信息;事实上,
MFC通过将HWND存储在称为。hwnd的公用CWnd数据成员中,而在CWnd内包装了一
个窗口。作为规则,如果Windows通过某种类型的句柄展示一个对象,那么相应的MFC类
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -