【摘要】:当框架类窗口大小变化时,客户区内所有子窗口的位置自动排布。CFrameWnd类对工具栏的停靠和浮动控制,在其他CWnd派生类中都难以实现。图12-35 CFrameWnd类①调用CFrame::Create函数直接创建。LoadFrame对参数进行裁剪,只有第一个参数必须代入,其余参数具有默认数值。LoadFrame不需要代入窗口类型名,也就无需在创建前先注册。CDocTemplate对象将框架、视图与文档绑定在一起,三个组成部分统一由系统内部创建。表12-5 CFrameWnd类的常用成员(续)2)CMDIFrameWnd类如图12-36所示。
1)CFrameWnd类如图12-35所示。
框架类(CFrameWnd)在CWnd类基础上,重点开发了与内部视图、工具栏和状态栏之间的关系。当框架类窗口大小变化时,客户区内所有子窗口的位置自动排布。CFrameWnd类对工具栏的停靠和浮动控制,在其他CWnd派生类中都难以实现。
创建框架窗口有3种方式。

图12-35 CFrameWnd类
①调用CFrame::Create函数直接创建。创建之前必须调用RegisterClass系列函数之一,新注册一个窗口类型名。注册成功后的窗口类型名,用于CFrameWnd::Create函数第一个参数代入,类似于CWnd::Create函数的调用方法。
②用CFrame::LoadFrame直接构造。CFrameWnd::LoadFrame和CFrameWnd::Create函数的相同点是,在创建之前都必须在堆空间内申请一个对象。LoadFrame对参数进行裁剪,只有第一个参数必须代入,其余参数具有默认数值。LoadFrame不需要代入窗口类型名,也就无需在创建前先注册。
③用文档模板间接构造。CDocTemplate对象将框架、视图与文档绑定在一起,三个组成部分统一由系统内部创建(将在第13章介绍)。CFrameWnd类的常用成员见表12-5。
表12-5 CFrameWnd类的常用成员

(续)

2)CMDIFrameWnd类如图12-36所示。(www.chuimin.cn)
多文档框架类(CMDIFrameWnd)主要提供MDI子窗口的管理功能,创建多文档框架和普通框架一样有3种方式。当没有活动的MDI子窗口时,MDI框架窗口使用默认的主框架菜单;当有活动的MDI子窗口时,MDI框架窗口使用MDI子窗口菜单。CMDIFrameWnd类的常用成员见表12-6。

图12-36 CMDIFrameWnd类
表12-6 CMDIFrameWnd类的常用成员

3)CMDIChildWnd类如图12-37所示。
多文档子窗口类(CMDIChildWnd)与普通框架窗口非常相似,唯一的区别在于它只能作为多文档框架的子窗口,而不能作为主窗口。多文档子窗口没有自己的菜单栏,只能与主框架共享菜单栏。CMDIChildWnd类的常用成员见表12-7。

图12-37 CMDIChildWnd类
表12-7 CMDIChildWnd类的常用成员

相关推荐