zoukankan      html  css  js  c++  java
  • wxWidgets:菜单

    和菜单有关的类主要有两个:wxMenuItem和wxMenu。wxMenuItem用于表示一个菜单项,而wxMenu是wxMenuItem的弹出或下拉列表。

    现在让我们看看如何给我们的框架类加上菜单:

    MyFrame::MyFrame
        : wxFrame
    {
        // 新建下拉菜单
        // 该下拉菜单将显示在MyFrame的MenuBar上
        // 所以我们不希望它有自己的标题栏
        // 如果为其构造函数指定wxString参数
        // 该string将在这个menu显示出来时作为其标题栏一并显示出来
        wxMenu *menuFile = new wxMenu();
        // 菜单项:Open
        wxMenuItem *menuItemOpen = new wxMenuItem(menuFile, ID_MENUITEM_OPEN, L"Open...");
        // 菜单项:Close
        wxMenuItem *menuItemClose = new wxMenuItem(menuFile, ID_MENUITEM_CLOSE, L"Close...");
        // 将菜单项Open加入下拉菜单
        menuFile->Append(menuItemOpen);
        // 将菜单项Close加入下拉菜单
        menuFile->Append(menuItemClose);
        // 创建菜单条
        wxMenuBar *menuBar = new wxMenuBar();
        // 将下拉菜单加入菜单条
        // 该下拉菜单将在menuBar上显示为”File"
        menuBar->Append(menuFile, L"File");
        // 设置MyFrame的菜单条
        SetMenuBar(menuBar);
    }                

     每一列下拉菜单(或弹出菜单)都是一个wxMenu对象;每一个子菜单本身也是一列下拉菜单,因此也是一个wxMenu对象。

    下面的代码给File菜单增加一个Recent Files子菜单,这个子菜单有两个item:R1和R2。

        // 子菜单本身也是一个wxMenu对象
        wxMenu *menuRecent = new wxMenu();
        // 子菜单的两个菜单项
        wxMenuItem *menuItemR1 = new wxMenuItem(menuRecent, ID_MENUITEM_R1, L"R1");
        wxMenuItem *menuItemR2 = new wxMenuItem(menuRecent, ID_MENUITEM_R2, L"R2");
        menuRecent->Append(menuItemR1);
        menuRecent->Append(menuItemR2);
        // 使用wxMenu对象的AppendSubMenu函数将子菜单加入File菜单列
        menuFile->AppendSubMenu(menuRecent, "Recent Files");

    下面的代码将菜单项选择事件与某个处理函数关联:

    Bind(wxEVT_MENU, &MyFrame::OnMenuItemOpen, this, ID_MENUITEM_OPEN);
  • 相关阅读:
    大数据学习相关知识点
    SSMS登记密码清除
    ubuntu 18.04下安装Hadoop
    ubuntu 常见命令整理
    ubuntu 18.04下安装Java
    JQuery ajax请求返回(parsererror)异常处理
    (转载) C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
    编译器的原理
    笔试题积累
    构造函数为什么不能声明为虚函数
  • 原文地址:https://www.cnblogs.com/byeyear/p/3495955.html
Copyright © 2011-2022 走看看