wxWidgets的多文档界面(MDI)

本文介绍了使用wxWidgets库创建MDI(多文档界面)应用程序的方法,包括标准MDI和Tab风格的MDI。在MDI中,wxMDIParentFrame和wxMDIChildFrame是核心类,分别代表父窗口和子窗口。Tab风格的MDI利用AUI框架,通过wxAuiMDIParentFrame和wxAuiMDIChildFrame实现,子窗口以标签形式切换。文章还提到了在关闭程序时如何处理子窗口的存在以避免异常。
摘要由CSDN通过智能技术生成

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"))
{
    /// 创建菜单栏、工具栏和状态栏.</
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值