Introdução
Através dos menus nós podemos agrupar os comandos de nossa aplicação para que possamos executá-los de maneira rápida e intuitiva. Em wxWidgets os menus são compostos basicamente de uma barra de menu (wxMenuBar), os menus propriamente ditos (wxMenu) e os items pertencentes a cada menu (wxMenuItem). Através do método SetMenuBar() nós adicionamos uma barra de menu à aplicação. O método Append() adiciona um menu à barra de menu e um item de menu ao menu.
No nosso exemplo criaremos uma aplicação com uma barra de menu que tem o menu 'Arquivo' que por sua vez tem os items de menu: 'Novo', 'Abrir', 'Salvar' e 'Sair'. Ao clicarmos no item de menu 'Sair' a aplicação é fechada.
Código:
#include <wx/wx.h>
//menu.h
class Menu : public wxFrame
{
private:
wxMenuBar *barramenu;
wxMenu *arquivo;
wxMenuItem *novo;
wxMenuItem *abrir;
wxMenuItem *salvar;
wxMenuItem *sair;
public:
Menu(const wxString &titulo);
void Sair(wxCommandEvent &evt);
};
#include "menu.h"
//menu.cpp
Menu::Menu(const wxString &titulo) :
wxFrame(NULL, -1, titulo, wxDefaultPosition, wxSize(500, 400))
{
//criamos a barra de menu
barramenu = new wxMenuBar;
//criamos o menu Arquivo
arquivo = new wxMenu;
novo = new wxMenuItem(arquivo, 1000, wxT("&Novo"));
abrir = new wxMenuItem(arquivo, 1001, wxT("A&brir"));
salvar = new wxMenuItem(arquivo, 1002, wxT("&Salvar"));
sair = new wxMenuItem(arquivo, 1003, wxT("Sai&r"));
//conectamos o método Sair() ao item de menu de id = 1003
Connect(1003, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(Menu::Sair));
//adicionamos os items de menu ao menu arquivo
arquivo->Append(novo);
arquivo->Append(abrir);
arquivo->Append(salvar);
arquivo->Append(sair);
//adicionamos o menu Arquivo à barra de menu
barramenu->Append(arquivo, wxT("&Arquivo"));
//adicionamos a barra de menu 'barramenu' à aplicacao
SetMenuBar(barramenu);
Centre();
}
void Menu::Sair(wxCommandEvent &evt)
{
//fechamos a aplicacao
Close();
}
#include "menu.h"
//main.h
class MinhaApp : public wxApp
{
public:
virtual bool OnInit();
};
#include "main.h"
//main.cpp
IMPLEMENT_APP(MinhaApp)
bool MinhaApp::OnInit()
{
Menu *menu = new Menu(wxT("Menus com wxWidgets"));
menu->Show(true);
return true;
}
Nenhum comentário:
Postar um comentário