Hoje escreveremos nosso primeiro programa em wxWidgets, na verdade ele não terá função nenhuma, apenas criaremos uma instância de programa e a fecharemos. O objetivo é apenas explicar como funciona wxApp.
Vamos ao código:
Primeiro vamos escrever o arquivo de cabeçalho que eu chamei de “main.h”.
//Arquivo main.h
//Tutorial wxApp parte – 1 do blog http://wxnewbie.blogspot.com
//Aqui eu adicionei o arquivo de cabeçalho do wxWidgets, ou seja, “wx.h”...
#include <wx/wx.h>
//Aqui crio uma classe publica chamada wxAppTutorial, que é derivada de wxApp...
class wxAppTutorial: public wxApp
{
public:
//Aqui eu declaro a função OnInit(), que é uma cópia da mesma função
//encontrada na classe wxApp...
bool OnInit(void);
};//Não se esqueça de colocar o ";" no final da declaração das classes...
Agora o arquivo de implementação “main.cpp”
//Arquivo main.cpp
//Tutorial wxApp parte – 1 do blog http://wxnewbie.blogspot.com
//Aqui eu adiciono o arquivo de cabeçalho “main.h”, que criei com as declarações.
#include “main.h”
//Aqui eu implemento a função OnInit()...
//Lembre-se que ela é do tipo bool e pertence a classe wxAppTutorial...
bool wxAppTutorial::OnInit(void)
{
//...Tudo que eu colocar aqui será inicializado com o programa...//
//Aqui eu preciso retornar um valor booleano
//Coloco como false para finalizar o programa
//Se eu colocar como true, o programa continuará rodando
//até que seja executado um comando para fechá-lo...
return false;
}
//Neste ponto eu executo a macro IMPLEMENT_APP(wxAppTutorial)
//Para mostrar ao wxWidgets como criar uma instância da sua classe de aplicativo.
IMPLEMENT_APP(wxAppTutorial) //Não é necessário colocar o ";" para finalizar MACROS...
Para entendermos melhor como o código todo funciona, vamos pensar da seguinte maneira:
Quando criamos uma classe derivada de wxApp, estamos criando a classe que representa a nossa aplicação em si, quando implementamos a função OnInit(), mostramos como iniciar o processamento do aplicativo, mas isto tudo não é suficiente para que o sistema rode, precisamos mostrar ao wxWidgets que esta classe é a responsável pela criação da instância do seu aplicativo, e fazemos isto com IMPLEMENT_APP().
Uma coisa que deve ficar clara no exemplo, é que eu apenas setei o “return” da função “OnInit()” como “false” para que o programa não fique rodando em background sem termos como pará-lo usando a própria aplicação, se você colocar este valor como true, não haverá problema algum, você apenas terá que fechar o programa usando o gerenciador de processos do seu sistema operacional.
Nos próximos tutoriais, irei mostrar algumas outras coisas que podem ser feitas usando wxApp.
Até a próxima.
0 comentários:
Postar um comentário