Advertisement
AntonioVillanueva

Test wwxComboBox gestion del evento en wxWidgets

Jun 27th, 2018
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.87 KB | None | 0 0
  1. //Test wwxComboBox gestion del evento en wxWidgets Antonio Villanueva
  2. //g++ -Wall -static-libstdc++ -std=c++11 -Wunused-but-set-variable `wx-config --cxxflags` -o hola *.cpp `wx-config --libs`
  3. #include <iostream>
  4. #include "wx/wx.h"
  5. #include <wx/stattext.h>
  6. #include <wx/sizer.h> //Layouts
  7.  
  8. //using namespace std;
  9.  
  10. //Declaraciones
  11. //----------------------------------------------------------------------
  12. //Cada aplicacion wxWidget define una clase derivada de wxApp
  13. class MiApp:public wxApp
  14. {
  15.     public:
  16.     //Llamado al inicio startup, es como el main en c
  17.     virtual bool OnInit();//main wxWidgets , mas abajo se implementa
  18. };
  19.  
  20. //Declaracion de la clase frame principal
  21.  
  22. //----------------------------------------------------------------------
  23.  
  24. class MiFrame:public wxFrame
  25. {
  26.     public:
  27.     //Constructor de la clase
  28.     MiFrame(const wxString& titulo);
  29.    
  30.     // "event handlers" , gestion de eventos
  31.     void OnCombo(wxCommandEvent& event);//Manipula CB
  32.     //void OnCombo2(wxCommandEvent& event);//Manipula CB       
  33.  
  34.    
  35.     private:
  36.     /*Macro para informar a wxWidgets de la gestion de eventos
  37.     *Declara la tabla de eventos en esta clase ,mas abajo
  38.     * la implemento entre BEGIN_ y END_EVENT_TABLE
  39.     */
  40.    
  41.     //Declaracion dinamica eventos no utilizo el macro
  42.     //Trabajaremos desde OnInit para eventos dinamicos
  43.     DECLARE_EVENT_TABLE()
  44. };
  45. //----------------------------------------------------------------------
  46. //----------------------------------------------------------------------
  47.  
  48. /*Implementacion , MiApp
  49. *Cuando se crea el objeto MiApp se asigna a la variable global wxTheApp
  50. * pero mejor que hacer un CAST emplear el MACRO  DECLARE_APP despues de
  51. * la declaracion de la clase , wxGetApp retorna una ref. al objeto MiApp
  52. */
  53. DECLARE_APP(MiApp)
  54.  
  55. //Macro que Proporciona a wxWidgets los medios de crear el objeto MiApp
  56. IMPLEMENT_APP(MiApp)
  57.  
  58. //----------------------------------------------------------------------
  59. //----------------------------------------------------------------------
  60. //----------------------------------------------------------------------
  61.  
  62. //Implementacion OnInit,Inicializa la aplicacion
  63.  
  64. bool MiApp::OnInit()
  65. {
  66.     //Crea la ventana principal , una instancia de nuestra clase MiFrame
  67.     //El titulo lo pasamos al constructor envuelto en el macro wxT
  68.     //macro de conversion de strings y char al tipo apropiado
  69.     MiFrame *frame=new MiFrame(wxT("Titulo Test wxWidgets"));
  70.    
  71.     //Mostrar la ventana
  72.     frame->Show(true);
  73.    
  74.     //Arranca el bucle de eventos
  75.     return true ;//Si false limpia sus estructuras y sale
  76. }
  77.  
  78. //----------------------------------------------------------------------
  79.  
  80.  
  81. const wxWindowIDRef ID_COMBOBOX = wxWindow::NewControlId();
  82.  
  83. //Tabla de eventos para MiFrame DECLARE_EVENT_TABLE() en MiFrame
  84. //Deteccion de los clicks de raton con wxID_ABOUT y wxID_EXIT
  85. //Que se dirigen a MiFrame::OnAbout y OnQuit
  86.  
  87. BEGIN_EVENT_TABLE (         MiFrame,wxFrame)
  88.     EVT_TEXT(ID_COMBOBOX,MiFrame::OnCombo)//Empleado en wxComboBox
  89.     //EVT_COMBOBOX(ID_COMBOBOX,MiFrame::OnCombo2)//Empleado en wxComboBox  
  90. END_EVENT_TABLE()
  91.  
  92.  
  93. void MiFrame::OnCombo(wxCommandEvent& event)//Manipula CB
  94. {
  95.     //event.FindString GetClientData SetClientDat GetCount
  96.     wxMessageBox( wxT(" 1 Has hecho click en = ")+event.GetString() );
  97. }
  98.  
  99. /*
  100. void MiFrame::OnCombo2(wxCommandEvent& event)//Manipula CB
  101. {
  102.     //event.FindString GetClientData SetClientDat GetCount
  103.     wxMessageBox( wxT(" 2 Has hecho click en =")+event.GetString() );
  104. }
  105. */
  106.  
  107. //Constructor de MiFrame implementa un icono una barra status y menu
  108. //wxID_ANY le dice a Widgets de generar un identificador por su cuenta
  109. MiFrame::MiFrame(const wxString& titulo):wxFrame(NULL,wxID_ANY,wxT("Barra Sup"))
  110. {
  111.  
  112.     //Crea  wxPanel
  113.     wxPanel* ventana=new wxPanel(this,wxID_ANY);   
  114.  
  115.     //Crea Botones
  116.     //4 en el wxPanel ventana
  117.     wxButton* boton1=new wxButton(ventana,wxID_OK,wxT("OK 1"));
  118.     wxButton* boton2=new wxButton(ventana,wxID_OK,wxT("OK 2"));
  119.     wxButton* boton3=new wxButton(ventana,wxID_OK,wxT("OK 3"));
  120.                  
  121.     //Crea Sizers wxBoxSizer VERTICAL HORIZONTAL    
  122.     wxBoxSizer* vbox  = new wxBoxSizer(wxVERTICAL);
  123.     wxBoxSizer* hbox1 = new wxBoxSizer(wxHORIZONTAL);
  124.  
  125.     //Anade la wxBoxSizer hbox1 & los botones  
  126.     vbox->Add(hbox1);//Anade wxBoxSizer HORIZONTAL1 al VERTICAL  
  127.        
  128.     hbox1->Add(boton1);//Anade al wxBoxSizer HORIZONTAL1 botones..
  129.     hbox1->Add(boton2);
  130.     hbox1->Add(boton3);    
  131.  
  132.     //wxBoxSizer (vbox) empleado en el wxPanel (ventana) ,con (hbox1)
  133.     ventana->SetSizer(vbox);
  134.  
  135.     //Crea cadenas de texto
  136.     wxArrayString cadenas;
  137.     cadenas.Add(wxT("uno"));
  138.     cadenas.Add(wxT("dos"));
  139.     cadenas.Add(wxT("tres"));
  140.     cadenas.Add(wxT("cuatro"));  
  141.  
  142.     //wxComboBox crea un wxCombox con las cadenas anteriores en el wxPanel ventana
  143.     wxComboBox* combo=new wxComboBox(ventana,ID_COMBOBOX,wxT("Numeros"),
  144.                         wxDefaultPosition,wxDefaultSize,cadenas,wxCB_SORT);
  145.     hbox1->Add(combo);//Anadimos el wxComboBox al wxBoxSizer hbox1
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement