Olhem só o que o Visual C++ 2005 pode fazer...Criar aplicações gráficas para o Windows é uma tarefa fácil quando estamos usando Delphi ou VB.NET e C# usando Windows Forms. Contudo, quando se trata de fazer isso em C++ usando apenas a API do Windows, a coisa muda completamente. Este artigo mostrará a você como usar o VC++ 2005 para criar uma aplicação C++ de interface gráfica usando um diálogo, ou seja, uma janela no estilo da Calculadora do Windows.
Criando o esqueleto da aplicação
Inicie o Visual Studio 2005 e vá em File -> New -> Project. Na janela que se abrirá, selecione Other Languages -> Visual C++. Você verá a tela de seleção de projetos (Visual Studio installed templates). Selecione "Win32 Project" e dê o nome "exemplo_win32" para o projeto. Selecione um local para gravação e clique o botão OK.
Na tela seguinte, vá na opção "Application settings", marque a opção "Empty project" e clique o botão Finish. Pronto! Já temos um projeto em branco pronto para iniciarmos.
Como criar o arquivo de recurso para a janela da aplicação
Vamos começar criando o arquivo de recurso para a janela de nossa aplicação. Para isso, vá na aba "Solution Explorer", clique com o botão direito em cima de Resource Files e escolha Add -> Resource. Você verá a seguinte janela:
Não expanda o nó Dialog. Apenas selecione-o e clique o botão New. A janela Add Resource será fechada e você verá o seguinte resultado:
Antes de continuar, selecione os botões OK e Cancel e exclua-os. Não precisaremos deles por ora. Em seguida vamos modificar esta janela para que ela fique mais parecida com a janela principal de uma aplicação Windows. Clique com o botão direito na área da janela e escolha Properties. Você verá uma longa lista de propriedades que podem ser ajustadas. Vá até a propriedade ID e verá que o identificador de nossa janela é "IDD_DIALOG1". Vamos deixar assim e, por favor, não esqueça este valor.
Altere mais algumas propriedades. Por exemplo, defina o valor True para as propriedades "Maximize Box" e "Minimize Box". Defina também o valor True para a propriedade "Application Window". Isso fará com que a janela tenha presença garantida na barra de tarefas do Windows. Altere Border para "Resizing". Finalmente altere a propriedade Caption para "Minha aplicação".
Agora, acesse a aba Toolbox e arraste um Static Text, um Edit Control e um Button. Altere as propriedade Caption do Static Text e do Button para que fiquem iguais à figura seguinte (Você pode testar o diálogo acessando Format -> Test Dialog):
O mais importante a observar é o ID de cada controle inserido na janela. Lembre-se de que o ID da caixa de texto é IDC_EDIT1 e o ID do botão é IDC_BUTTON1. Tenha isso em mente enquanto continuamos.
Hora de escrever código
Agora que já temos o arquivo de recurso para a janela da aplicação, vá em Solution Explorer, clique com o botão direito em Source File e escolha Add -> New Item. Na janela que será exibida, selecione Code em Categories e escolha C++ File (.cpp). Dê o nome exemplo_win32.cpp para o arquivo e clique o botão Add. Agora clique com o botão direito em Header Files e escolha Add -> New Item. Na janela que será exibida, selecione Code em Categories e escolha Header File (.h). Dê o nome exemplo_win32.h para o arquivo e clique o botão Add.
Abra o arquivo exemplo_win32.h e adicione o seguinte conteúdo:
#include "resource.h"
Agora abra o arquivo exemplo_win32.cpp e adicione o conteúdo a seguir:
- Código:
-
//////////////////////////////////////////////////////////////////////////////////
#include "exemplo_win32.h"
#include <windows.h>
// Função de CALLBACK para tratar os eventos da janela
// e demais controles.
BOOL CALLBACK WindowProc(HWND hwnd, UINT Message,
WPARAM wParam, LPARAM lParam){
switch(Message){
case WM_INITDIALOG:
return TRUE;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
// trata os eventos dos controles
switch(LOWORD(wParam)){
case IDC_BUTTON1: // ID do botão
WCHAR texto[80]; // conteúdo da caixa de texto
GetDlgItemText(hwnd, IDC_EDIT1, texto, 50);
WCHAR mensagem[255] = L"O texto da caixa de texto é: ";
wcscat_s(mensagem, texto);
MessageBox(NULL, mensagem, L"Mensagem",
MB_ICONEXCLAMATION | MB_OK);
break;
}
// fim tratamento de eventos dos controles
break;
default:
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow){
// Constrói a janela. Observe o ID do diálogo sendo
// fornecido para MAKEINTRESOURCE. WindowProc é o
// nome da função de CALLBACK responsável pelo
// tratamentos dos eventos da janela e seus controles
int ret = DialogBox(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDD_DIALOG1), NULL, WindowProc);
return 0;
}
A explicação passo-a-passo deste código vai além do objetivo deste artigo. Apenas observe os IDs dos controles e da janela. Veja também como usamos a função:
GetDlgItemText(hwnd, IDC_EDIT1, texto, 50);
para obter o texto digitado na caixa de texto. Execute o programa agora. Você terá um resultado parecido com a figura abaixo:
É por isso que eu gosto muito de C++, pena é que aqui em Angola não tem escola que estudam c++ assim como java,.... mas eu vou xtudar sempre,.....
bons xtudos,....