词条 | CMDIChildWnd |
释义 | CMDIChildWnd类提供了Windows多文档界面(MDI)子窗口及用于管理窗口的成员。 MDI子窗口与典型的框架窗口非常相似,唯一的区别在于MDI子窗口是出现在MDI框架窗口中,而不是在桌面上。MDI子窗口没有自己的菜单条,不过它可以共享MDI框架窗口。框架自动更改MDI框架的菜单,用于代表当前活动的MDI子窗口。 为了为应用创建有用的MDI子窗口,需要从CMDIChildWnd派生类。 为派生类增添成员变量,从而为应用存储指定的数据。实现消息处理的成员函数,并在派生类中实现消息映射,以便于指出当消息传递给窗口后,将发生什么事情。 构造MDI子窗口有三种途径: · 使用Create函数直接构造。 · 使用LoadFrame函数直接构造。 · 通过文档模板直接构造。在调用Create 或 LoadFrame之前,必须使用C++new操作符在堆中构造框架窗口对象。在调用Create函数之前,必须使用AfxRegisterWndClass全局函数来登记窗口类,从而为框架设置图标或类的风格。 使用Create成员函数,用于传递作为即时参数的框架创建参数。 LoadFrame需要的参数比Create少,不过,它需要资源更多的缺省值,包括框架的标题、图标、加速表和菜单。为了LoadFrame函数的使用,所有的资源必须有相同的资源ID号(例如, IDR_MAINFRAME)。 当CMDIChildWnd对象包含视图或文档时,它们都是被框架直接创建的,而不是被编程者创建的。CDocTemplate 对象含有框架的创建,视图的创建以及视图与适当文档的联系。CDocTemplate结构的参数指定了涉及到的三个类(文档,框架,视图)的CRuntimeClass对象。 CRuntimeClass对象被框架所使用,用于用户指定后动态地创建新框架(例如使用File New命令或MDI窗口New命令)。 派生于CMDIChildWnd的框架窗口必须由DECLARE_DYNCREATE来声明,以便于RUNTIME_CLASS机制正常工作。 CMDIChildWnd类从CFrameWnd类中继承了大部分缺省用法。如果需要了解这些功能的详细情况,请参考CFrameWnd类的描述。 CMDIChildWnd拥有下列额外的功能: · 与CMultiDocTemplate类相关联,来自于同一文档模板的多个CMDIChildWnd 对象共享同一个菜单,并存储Windows的系统资源。 · 当前活动的MDI子窗口菜单完全替换了MDI框架窗口的菜单。如果要了解与MDI框架窗口有关的MDI子窗口函数的更多例子,请参阅CMDIFrameWnd类的说明。最好不要使用C++删除操作来删除框架窗口,而应使用CWnd::DestroyWindow函数。当用户关闭框架窗口时,缺省的OnClose操作将调用DestroyWindow函数。 #include <afxwin.h> CMDIChildWnd类的成员 构造函数 CMDIChildWnd 构造一个CMDIChildWnd对象 初始化 Create 创建与CMDIChildWnd对象相关联的Windows MDI子窗口 操作 MDIDestroy 删除MDI子窗口 MDIActivate 激活MDI子窗口 MDIMaximize 使MDI子窗口最大化 MDIRestore 将MDI子窗口从最大化状态或最小化状态恢复为原始尺寸 GetMDIFrame 返回父亲MDI客户窗口的MDI框架 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。