Sou estudante de sistemas de informação acabei de vê C no semestre passado, mas estou querendo aprender sobre uso interface gráfica em, seguindo o livro C completo e total utilizei o exemplo do livro e tem dados uns erros, gostaria que alguém me ajudasse, o código é para criação do esqueleto de uma janela, o programa executa + não como deveria. Segue o código abaixo
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
LRESULT CALLBACK WindowFunc(HWND, UINT,WPARAM, LPARAM);
char szWinName[] = "Minha_Janela";//nome da classe da janela
int WINAPI WinMain (HINSTANCE hThisInst, HINSTANCE prevInst, LPCSTR lpszArgs, int nWinMode){
HWND hwnd;
MSG msg;
WNDCLASSA wcl;
wcl.hInstance = hThisInst;//handle desta instância
wcl.lpszClassName = szWinName;//nome da classe da janela
wcl.lpfnWndProc = WindowFunc;//funão da janela
wcl.style = 0;//estilo padrão
wcl.hIcon = LoadIcon(NULL,IDI_APPLICATION);//estilo do icone
wcl.hCursor = LoadCursor(NULL,IDC_ARROW);//estilo do cursor
wcl.lpszMenuName = NULL;//sem menu
wcl.cbClsExtra = 0;//nenhuma informação
wcl.cbWndExtra = 0;//extra é necessario
wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); //faz o fundo da tela ficar branco
//Registra a classe de janela
if(!RegisterClassA(&wcl)) return 0;
//Apos registrar a classe - cria a janela
hwnd = CreateWindowA(
szWinName, //nome da classe da janela
"Esqueleto Windows",//título
WS_OVERLAPPEDWINDOW,//estilo da janela - normal
CW_USEDEFAULT, //coordenada x, deixa o windows decidir
CW_USEDEFAULT,//coordenada y, deixa o windows decidir
CW_USEDEFAULT,//largura - deixa o windows decidir
CW_USEDEFAULT,//altura - deixa o windows decidir
HWND_DESKTOP, //sem janela pai
NULL,//sem menu
hThisInst, //handle desta instancia do programa
NULL, //nehum argumento adicional
);
//exibe a janela
ShowWindow(hwnd, nWinMode);
UpdateWindow(hwnd);
//cria a repetição da mensagem
while (GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);//permite uso de teclado
DispatchMessage(&msg);//retorna o controle do windows
}
return msg.wParam;
}
//função chamada pelo windows que recebe as mensagens da fila de mensagem
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
switch(message){
case WM_DESTROY: //encerra o rograma
PostQuitMessage(0);
break;
default:
//deixa owindows processar qualquer mensagem não especificadas no switch acima
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
Ele tem apresentado as mensagens de erro abaixo:
warning: C4028: parâmetro formal 3 diferente da declaração linha 9
warning: C4002: muitos parâmetros reais para macro 'CreateWindowA' linha 4
Mesmo com essas mensagens o programa executa e exibe a janela com o título da janela em símbolos e não letras.
Eu uso o Visual Studio 2010 Ultimate, quem puder me ajudar eu agradeço muito
Question
Josemberg
Bom dia!
Sou estudante de sistemas de informação acabei de vê C no semestre passado, mas estou querendo aprender sobre uso interface gráfica em, seguindo o livro C completo e total utilizei o exemplo do livro e tem dados uns erros, gostaria que alguém me ajudasse, o código é para criação do esqueleto de uma janela, o programa executa + não como deveria. Segue o código abaixo
Ele tem apresentado as mensagens de erro abaixo:
warning: C4028: parâmetro formal 3 diferente da declaração linha 9
warning: C4002: muitos parâmetros reais para macro 'CreateWindowA' linha 4
Mesmo com essas mensagens o programa executa e exibe a janela com o título da janela em símbolos e não letras.
Eu uso o Visual Studio 2010 Ultimate, quem puder me ajudar eu agradeço muito
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.