3.1.2 MFC的设计思想
在Microsoft的程序员开始创建MFC时,他们对未来的看法包括以下几个设计目标。
(1)MFC应该给Windows操作系统提供一个面向对象的接口,支持可重用性、自包含性及其他OOP原则。
(2)实现上述目标的前提是不需要强加给系统过多的工作或不增加应用程序对内存的不必要的开销。
第一个目标的实现可通过编写类来封装窗口、对话框及其他对象,并引入某些关键的虚函数来完成。第二个目标要求MFC设计人员尽早就如何将窗口、菜单及其他对象被MFC(如CWnd和CMenu)包装作为选择。
MFC设计者所用的使类库带来的总开销减到最小的方法之一是在MFC对象与Windows对象之间的关系中得到了体现。在Windows中,有关窗口特性和目前状态的信息被保存在操作系统拥有的内存中。这些信息对应用程序是隐藏的,应用程序只能处理窗口句柄或HWND。MFC并没有复制在CWnd类的数据成员中的与HWND有关的所有信息,事实上,MFC通过将HWND存储在称为m_hWnd的公用CWnd数据成员中,而在CWnd内包装了一个窗口。作为规则,如果Windows通过某些类型的句柄展示一个对象,那么相应的MFC类就会包含那个句柄的数据成员。如果我们想要调用API函数,该函数要求一个句柄,但是我们只有CWnd或CWnd指针,而不是HWND,那么这些知识对于我们来说是有用的。
【责任编辑:
雪花 TEL:(010)68476606-8007】