La clase
wxApp es una de las más
importantes dentro de una aplicación desarrollada con la
librería
wxWidgets. Siempre debemos
crear una clase derivada de ésta como punto de partida para
un nuevo desarrollo. Es de tipo
singleton, por
lo que solo existirá un objeto perteneciente a esta clase.
Sobreescribiendo la función
OnInit() se
da comienzo a la ejecución de nuestro programa, como si se
tratara de la función
main() de C o C++
tradicional.
A lo largo del desarrollo, habrá ocasiones en las cuales
vamos a necesitar invocar a alguna función de la clase
wxApp
estándar o de la derivada que hayamos creado nosotros. Para
esto
existen dos mecanismos diferentes dentro de wxWidgets:
Mediante wxTheApp
Esta es una variable global que contiene un puntero de tipo
wxApp*,
pero en realidad apunta a nuestra clase derivada. El problema es que si
queremos invocar a una función creada en nuestra clase
derivada,
primero tendremos que
castizar el puntero a nuestro
tipo específico.
Mediante wxGetApp()
Este método es un poco más sofisticado, y
requiere tener en cuenta un paso adicional para poder utilizarlo.
wxGetApp()
es una función global que nos devuelve un puntero del tipo
específico que nosotros estamos utilizando para desarrollar
nuestro software. Por ejemplo, si nuestra clase se llama
clsApplication,
entonces
wxGetApp() nos devolverá un
puntero de tipo
clsApplication*.
La condición para que esto funcione es agregar una macro
similar a esta:
DECLARE_APP( clsApplication )
Un ejemplo un poco más completo del archivo de
cabecera
clsApplication.h podría verse
de esta manera:
#ifndef ClsApplication_H
#define ClsApplication_H
#include <wx/app.h>
class clsApplication : public wxApp
{
DECLARE_CLASS( clsApplication )
DECLARE_EVENT_TABLE()
public:
clsApplication();
virtual ~clsApplication();
};
DECLARE_APP( clsApplication )
#endif // ClsApplication_H
Para más información acerca de la clase
wxApp, consultar
http://www.wxwidgets.org/manuals/stable/wx_wxapp.html#wxappTags: programación, c++, wxWidgets, wxApp