martes, 19 de febrero de 2008
Publicado por Tecnonucleo @ 7:49  | wxWidgets
Comentarios (0)  | Enviar
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#wxapp

Tags: programación, c++, wxWidgets, wxApp

Comentarios