返回介绍

2.5 Frame 窗口的构造函数

发布于 2025-03-08 15:26:41 字数 1471 浏览 0 评论 0 收藏 0

最后,让我们来看看 Frame 窗口的构造函数,正是它实现了 frame 窗口的图标,菜单条和状态条。

#include "mondrian.xpm"



MyFrame::MyFrame(const wxString& title)
       : wxFrame(NULL, wxID_ANY, title)
{
    SetIcon(wxIcon(mondrian_xpm));
    wxMenu *fileMenu = new wxMenu;
    wxMenu *helpMenu = new wxMenu;
    helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"),
                     wxT("Show about dialog"));
    fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"),
                     wxT("Quit this program"));
    wxMenuBar *menuBar = new wxMenuBar();
    menuBar->Append(fileMenu, wxT("&File"));
    menuBar->Append(helpMenu, wxT("&Help"));
    SetMenuBar(menuBar);
    CreateStatusBar(2);
    SetStatusText(wxT("Welcome to wxWidgets!"));
}

这个构造函数首先调用它的基类(wxFrame)的构造函数,使用的参数是父窗口(还没有父窗口,所以用 NULL),窗口标识(wxID_ANY 标识让 wxWidgets 自己选择一个) 和标题。这个基类的构造函数才真正创建了一个窗口的实例。除了这样的调用方法,还有另外一种方法是直接在构造函数里面显式调用基类默认的构造函数,然后调用 wxFrame::Create 函数来创建一个 frame 窗口的实例。

小图片或者是图标在所有的平台上都可以用 XPM 格式来表示。XPM 文件其实是一个 ASCII 编码的完全符合 C++语法的文本文件,所以可以直接用 C++的方式包含到代码中(译者注:显然这样的包含方式在分发软件的时候是不需要分发这个图片文件的)。SetIcon 那一行代码使用 mondrian_xpm 变量在堆栈上创建了一个图标(这个 mondrian 变量是在 mondrian.xpm 文件里定义的)。然后将这个图标和 frame 窗口关联在一起。

接下来创建了菜单条。增加菜单项的 Append 函数的三个参数的意义分别为:菜单项标识,菜单上的文本以及一个稍微长一些的帮助字符串。这个帮助字符串会自动在菜单项被高亮显示的时候自动显示在状态栏上。菜单上的文本中由"&"符号前导的字符将成为菜单的快捷操作符,在实际的显示中用下划线表示。而"\t"符号则前导一个全局的快捷键,这个快捷键甚至可以在菜单项没有显示的时候触发菜单功能。

这个构造函数所做的最后一件事是创建一个由两个区域组成的状态条并且在状态条的第一个区域写上欢迎的字样。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文