MDI
MDI是多文档界面的简称。在这种界面下,所有子窗口都在父窗口之内,子窗口之间相互独立,可以在父窗口内活动和排列,也可以放大后占据父窗口的所有空间(遮盖其他子窗口)。
MDI界面中,主要的两个类是wxMDIParentFrame和wxMDIChildFrame。wxMDIParentFrame代表MDI父窗口,wxMDIChildFrame代表MDI子窗口。一般MDI程序需要一个继承自wxMDIParentFrame的对象作为主窗口,主窗口可以包含多个继承自wxMDIChildFrame的子窗口。
一个MDI窗口程序例子如下。该程序可以通过单机工具栏按钮创建子窗口,运行效果如下:
(1)主窗口类代码如下:
/// MainFrame.h
#pragma once
#include "wxInc.h"
class MainFrame : public wxMDIParentFrame
{
DECLARE_EVENT_TABLE();
public:
MainFrame(void);
~MainFrame(void);
public:
void CreateBars();
void CreateChild(wxCommandEvent & evt);
};
/// MainFrame.cpp
#include "MainFrame.h"
enum {
ID_ITEM_1 = wxID_HIGHEST + 1,
ID_ITEM_2,
ID_ITEM_3,
ID_ITEM_4,
};
BEGIN_EVENT_TABLE(MainFrame, wxMDIParentFrame)
EVT_TOOL(ID_ITEM_3, CreateChild)
END_EVENT_TABLE()
MainFrame::MainFrame() : wxMDIParentFrame(NULL, wxID_ANY, wxT("main window"))
{
/// 创建菜单栏、工具栏和状态栏.</