Arquivo de julho \30\+00:00 2012

Exemplo de uso da biblioteca wxWidgets

Recentemente meu pai pedio para mim criar um programa que exibi-se a logo marca dele com telefone no canto da área de trabalho do computador para que ele pode-se instala-lo nos clientes, ao invés de digitar uma montanha de código para deixar a jenela transparente e formatar o widgets de forma que eles funcionem de acordo com a necessidade, resolvi usar uma classe de Splashscreen padrão do wxWidgets para resolver o problema, onde seria somente necessário direcionar a imagem que se deseja exibir no canto esquerdo da tela. Segue abaixo os códigos usados.

main.h:

#include <wx/wx.h>

/*
 * Suporte Widget
 * programa para exibir uma imagem no canto esquerdo da tela
 * desenvolvido por Pablo Alexander
 * qtpablo@gmail.com
 * https://digitandocodigos.wordpress.com/
 * */

class MyApp : public wxApp
{
public:
	virtual bool OnInit();
};

main.cpp:

#include "main.h"
#include <iostream>
#include <wx/splash.h>

/*
 * Suporte Widget
 * programa para exibir uma imagem no canto esquerdo da tela
 * desenvolvido por Pablo Alexander
 * qtpablo@gmail.com
 * https://digitandocodigos.wordpress.com/
 * */

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
	//informa
	std::cout << "Programa desenvolvido por Pablo Alexander da rocha gonçalves" << std::endl;

	//obtem o tamanho da display
	int w,h;
	wxDisplaySize(&w, &h);

	//exibe o tamanho do display
	std::cout << std::endl << "Resolução da Tela.." << std::endl;
	std::cout << "Largura: " << w << "px" << std::endl;
	std::cout << "Altura: " << h << "px" << std::endl;

	//Inicializa o tipo png
	wxInitAllImageHandlers();

	wxSplashScreen *splash;
	wxBitmap bmp;

	if (bmp.LoadFile(wxT("logo.png"),wxBITMAP_TYPE_PNG))
	{
		//exibe o tamanho do display
		std::cout << std::endl << "Imagem.." << std::endl;
		std::cout << "Largura: " << bmp.GetWidth() << "px" << std::endl;
		std::cout << "Altura: " << bmp.GetHeight() << "px" << std::endl;

		splash = new wxSplashScreen(bmp, wxSPLASH_NO_CENTRE|wxSPLASH_NO_TIMEOUT, 6000, NULL, -1, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxSTAY_ON_TOP);
	}

	wxYield();

	std::cout << std::endl << "SplashScreen inicializado..." << std::endl;

	//determina onde deve ser exibido
	splash->Move(wxPoint(w - bmp.GetWidth() - 20, h - bmp.GetHeight() - 35));

	return true;
}

Para compilar use o seguinte comando: g++ main.cpp -o suporte `wx-config –cxxflags –libs`

Screenshot

Veja o meu teste.

Deixe um comentário