查看源代码 wxMDIParentFrame (wx v2.4.3)

MDI(多文档界面)父框架是一个窗口,其客户端区域可以包含 MDI 子框架,模拟完整的桌面。

MDI 是一种用户界面模型,其中所有窗口都驻留在单个父窗口内,而不是彼此分离。尽管微软本身(第一个推广此模型的公司)发出了严厉警告,称 MDI 已经过时,但它仍然很受欢迎。

MDI 父框架始终有一个与之关联的 wxMDIClientWindow,它是 MDI 子框架的父级。在最简单的情况下,客户端窗口会占据整个父框架区域,但也可以将其调整为更小,以便在框架中容纳其他窗口,一个典型的例子是沿窗口边缘使用侧边栏。

MDI 应用程序的外观在不同的端口之间有所不同。经典的 MDI 模型(子窗口可以独立移动、调整大小等)仅在 MSW 下可用,它提供了对此的原生支持。在 Mac 端口中,多个顶层窗口也用于 MDI 子窗口,并且 MDI 父框架本身是不可见的,以适应原生外观和感觉的要求。在所有其他端口中,使用基于选项卡的 MDI 实现(有时称为 TDI),因此任何时候最多只有一个 MDI 子窗口可见(子框架始终最大化)。

尽管可以有多个 MDI 父框架,但典型的 MDI 应用程序只有一个 MDI 父框架窗口,其中可以创建多个 MDI 子框架,即 wxMDIChildFrame 类的对象。

样式

此类支持以下样式

此类没有特殊样式,所有 wxFrame 样式都以通常的方式应用于它。唯一的例外是 wxHSCROLL 和 wxVSCROLL 样式不应用于框架本身,而是应用于客户端窗口,因此使用它们可以为该窗口而不是框架启用水平和垂直滚动条。

参见

此类派生自以下类,并可以使用其函数

wxWidgets 文档: wxMDIParentFrame

摘要

函数

激活当前活动 MDI 子窗口之后的 MDI 子窗口。

激活当前活动 MDI 子窗口之前的 MDI 子窗口。

排列任何图标化(最小化)的 MDI 子窗口。

将 MDI 子窗口以层叠方式排列。

用于两步框架构造。

销毁对象

返回指向活动 MDI 子窗口的指针(如果存在)。

返回指向客户端窗口的指针。

默认构造函数。

构造函数,创建窗口。

等效于 tile(This, [])

根据 orientwxHORIZONTAL 还是 wxVERTICAL,以水平或垂直方式平铺 MDI 子窗口。

类型

-type wxMDIParentFrame() :: wx:wx_object().

函数

-spec activateNext(This) -> ok when This :: wxMDIParentFrame().

激活当前活动 MDI 子窗口之后的 MDI 子窗口。

MDI 子窗口维护在有序列表中,此函数会切换到此列表中的下一个元素,如果当前活动的子窗口是最后一个,则会绕回到列表的开头。

参见: activatePrevious/1

链接到此函数

activatePrevious(This)

查看源代码
-spec activatePrevious(This) -> ok when This :: wxMDIParentFrame().

激活当前活动 MDI 子窗口之前的 MDI 子窗口。

参见: activateNext/1

-spec arrangeIcons(This) -> ok when This :: wxMDIParentFrame().

排列任何图标化(最小化)的 MDI 子窗口。

此方法仅在 MSW MDI 实现中实现,在其他平台下不执行任何操作。

参见

-spec cascade(This) -> ok when This :: wxMDIParentFrame().

将 MDI 子窗口以层叠方式排列。

此方法仅在 MSW MDI 实现中实现,在其他平台下不执行任何操作。

参见

链接到此函数

create(This, Parent, Id, Title)

查看源代码
-spec create(This, Parent, Id, Title) -> boolean()
                when
                    This :: wxMDIParentFrame(),
                    Parent :: wxWindow:wxWindow(),
                    Id :: integer(),
                    Title :: unicode:chardata().

等效于 create(This, Parent, Id, Title, [])

-spec create(This, Parent, Id, Title, [Option]) -> boolean()
                when
                    This :: wxMDIParentFrame(),
                    Parent :: wxWindow:wxWindow(),
                    Id :: integer(),
                    Title :: unicode:chardata(),
                    Option ::
                        {pos, {X :: integer(), Y :: integer()}} |
                        {size, {W :: integer(), H :: integer()}} |
                        {style, integer()}.

用于两步框架构造。

有关更多详细信息,请参阅 new/4

-spec destroy(This :: wxMDIParentFrame()) -> ok.

销毁对象

-spec getActiveChild(This) -> wxMDIChildFrame:wxMDIChildFrame() when This :: wxMDIParentFrame().

返回指向活动 MDI 子窗口的指针(如果存在)。

如果存在任何子窗口,则此函数返回一个非 NULL 指针。

-spec getClientWindow(This) -> wxMDIClientWindow:wxMDIClientWindow() when This :: wxMDIParentFrame().

返回指向客户端窗口的指针。

-spec new() -> wxMDIParentFrame().

默认构造函数。

对于使用此构造函数创建的对象,请使用 create/5

链接到此函数

new(Parent, Id, Title)

查看源代码
-spec new(Parent, Id, Title) -> wxMDIParentFrame()
             when Parent :: wxWindow:wxWindow(), Id :: integer(), Title :: unicode:chardata().

等效于 new(Parent, Id, Title, [])

-spec new(Parent, Id, Title, [Option]) -> wxMDIParentFrame()
             when
                 Parent :: wxWindow:wxWindow(),
                 Id :: integer(),
                 Title :: unicode:chardata(),
                 Option ::
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()}.

构造函数,创建窗口。

请注意,如果您覆盖了虚拟 OnCreateClient() (未在 wx 中实现) 方法,则不应使用此构造函数,而应使用默认构造函数和 create/5,否则,由于通常的 C++ 虚拟调用解析规则,您的重写方法将永远不会被调用。

在 wxMSW 下,当活动子窗口未最大化时,客户端窗口将自动具有下沉的边框样式;当子窗口最大化时,则没有边框样式。

参见: create/5

-spec tile(This) -> ok when This :: wxMDIParentFrame().

等效于 tile(This, [])

-spec tile(This, [Option]) -> ok when This :: wxMDIParentFrame(), Option :: {orient, wx:wx_enum()}.

根据 orientwxHORIZONTAL 还是 wxVERTICAL,以水平或垂直方式平铺 MDI 子窗口。

此方法仅在 MSW MDI 实现中实现,在其他平台下不执行任何操作。