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