九、wxWidgets菜单

 

wxMenuBar:菜单栏是一系列可从框架顶部访问的菜单。需使用SetMenuBar(menubar_name)将菜单栏添加到窗口里。

wxMenu:菜单可用于构建菜单栏或弹出菜单。

Append、AppendCheckItem、AppendRadioItem分别添加普通菜单、可选项目、单选项目。菜单需通过menubar->Append(menu)关联到菜单栏。

menu-AppendSubMenu(menu_name,menu_label),可以添加子菜单。

SetBitmap可以为菜单添加图标。

一、main.h

#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED

#include <wx/wxprec.h>
#ifndef WX_PRECOMP
    #include <wx/wx.h>
#endif // WX_PRECOMP


class MyApp:public wxApp
{
 public:
     virtual bool OnInit();
};

#endif // MAIN_H_INCLUDED
 

二、main.cpp

#include "main.h"
#include "simplemenu.h"

wxIMPLEMENT_APP(MyApp);

bool MyApp::OnInit()
{
    SimpleMenu *simplemenu = new SimpleMenu("Test Menu");
    simplemenu->Show(true);

    return true;
}

三、simplemenu.h

#ifndef SIMPLEMENU_H_INCLUDED
#define SIMPLEMENU_H_INCLUDED

#include <wx/wxprec.h>
#ifndef WX_PRECOMP
    #include <wx/wx.h>
#endif // WX_PRECOMP


class SimpleMenu:public wxFrame
{
public:
    SimpleMenu(const wxString& title);

    void OnQuit(wxCommandEvent& event);

    wxMenuBar *menubar;
    wxMenu *menu;
};

#endif // SIMPLEMENU_H_INCLUDED
 

四、

#include "simplemenu.h"

SimpleMenu::SimpleMenu(const wxString& title)
    :wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(280,180))
{

//    wxInitAllImageHandlers();
    wxImage::AddHandler(new wxPNGHandler);//使用PNG图片需要添加这句。

    menubar = new wxMenuBar;
    menu = new wxMenu;
    menu->Append(wxStandardID::wxID_NEW,"&New");
    menu->AppendSeparator();

    //增加一个子项菜单
    imp = new wxMenu;
    imp->Append(wxStandardID::wxID_COPY,"&Copy");
    imp->Append(wxStandardID::wxID_PASTE,"&Paste");
    imp->Append(wxStandardID::wxID_SAVE,"&Save");

    menu->AppendSubMenu(imp,"&Edit");
    menu->AppendSeparator();

    menu->AppendCheckItem(wxID_ANY,"CheckItem","help");
    menu->AppendRadioItem(wxID_ANY,"RadioItem1","radio");
    menu->AppendRadioItem(wxID_ANY,"RadioItem2","radio");

    //通过MenuItem增加菜单项
    quit=new wxMenuItem(menu,wxID_EXIT,"&Quit\tCtrl+Q");
    quit->SetBitmap(wxBitmap("accerciser.png",wxBITMAP_TYPE_PNG));//菜单前面加个图
    menu->Append(quit);

    menubar->Append(menu,"&File");
 

    SetMenuBar(menubar);

    Bind(wxEVT_COMMAND_MENU_SELECTED,SimpleMenu::OnQuit,this ,wxID_EXIT);


    this->Centre();
}

void SimpleMenu::OnQuit(wxCommandEvent &event)
{
    Close(true);
}
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值