首页 > 代码库 > 01_frame window

01_frame window

 

对于Windows应用程序,用户是在一个框架窗口中与被显示的内容进行交互的。

框架窗口可以是单文档接口(SDI)框架窗口,也可以是多文档接口(MDI)子窗口。

 

Windows负责管理大部分用户与框架窗口的交互,包括:移动窗口,改变窗口大小,关闭窗口,最大化,最小化窗口。 而程序员负责管理框架里的内容。

 

一个框架窗口有两个主要组建:<1>框架  <2>内容

 

MFC框架使用 框架窗口来包含视图。框架和视图分别由两个不同的类来表示。框架窗口类负责管理框架,视图类负责管理内容。

 

视图窗口是框架窗口的子窗口 绘图和用户与文档的交互发生在视图窗口的客户区,而不是框架窗口的客户区

 

框架窗口提供一个围绕视图可见的框架,并提供一个标题栏,标准的窗口空间,如菜单,最大化,最小化按钮等。

 

切分窗口: 对于切分窗口,框架窗口的客户区被一个切分窗口占据, 这个切分窗口拥有多个子窗口,称为 panes , 这些panes 是视图。

 

窗口对象

MFC提供CWnd类,它封装了窗口的句柄。 窗口句柄(HWND)用来代表一个窗口,而CWnd只是包含窗口句柄。

CWnd是所有窗口的基类,如:框架窗口,对话框,子窗口,控件,控件条(control bar)

 

每个派生于CWnd的类都包含一个消息映射。(消息映射可以将windows消息和COMMAND与你自己的处理器关联起来)。

 

消息映射: 在应用程序框架中的表现就是 消息与消息处理函数一一对应消息映射表,以及消息处理函数的声明和实现等代码。

 

MFC处理消息的过程是:  当窗口(在Win32中,每个窗口都有一个窗口过程,在MFC中每个派生自CWnd的类都有一个消息映射)接收到消息时,会到消息映射表中查找该消息

 

C++窗口对象与HWND(句柄) 的关系:

 

 

 

有四种类型的多态: <1>虚函数多态 <2>模板多态 <3>重载 <4>转换

所谓的动态和静态 是一种基于绑定时间的多态分类。

严格来说,重载是编译时多台,即静态多态。 而虚函数多态是运行时多态,即动态多态。