Prob WIN32

Signaler
Messages postés
60
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
1 juillet 2004
-
Messages postés
60
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
1 juillet 2004
-
bonjour, voici un code ke g tapé pour mon apprentissage de la prog Graphique :

#include <windows.h>

LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return WinProc(hWnd, uMsg, wParam, lParam);
}

return 0;
}

int WINAPI WinMain(HINSTANCE thisInstance, HINSTANCE PrevInstance, LPSTR CommandLine, int CmdShow)
{
WNDCLASSEX w;
MSG msg;
HWND hwnd;

char clsName[] = "Wini";
char caption[] = "Caption de la fen";

w.cbSize = sizeof(WNDCLASSEX);
w.cbClsExtra = 0;
w.cbWndExtra = 0;
w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
w.hCursor = LoadCursor(thisInstance, IDC_ARROW);
w.hIcon = LoadIcon(thisInstance, IDI_APPLICATION);
w.hIconSm = LoadIcon(thisInstance, IDI_APPLICATION);
w.hInstance = thisInstance;
w.lpfnWndProc = WinProc;
w.lpszClassName = clsName;
w.lpszMenuName = 0;
w.style = CS_VREDRAW | CS_HREDRAW;

if(RegisterClassEx(&w)) { MessageBox(0,"REGISTERCLASSEX ERROR","ERROR", MB_OK);return 0; }

hwnd = CreateWindowEx( 0, clsName, caption, WS_OVERLAPPEDWINDOW, 100,100,100,100, HWND_DESKTOP,0, thisInstance, 0);

if(!hwnd) { MessageBox(0,"HWND ERROR","ERROR", MB_OK);return 0; }

ShowWindow(hwnd, CmdShow);
UpdateWindow(hwnd);

while(GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

Mai il ne marche pas !!!
Ou est l'erreur ?

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
if(RegisterClassEx(&w)) PAS D'ERREUR ICI !!!
donc:
if(!RegisterClassEx(&w)) MESSAGE ERREUR ICI

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
60
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
1 juillet 2004

ben sa marche po kan mem, kan je met pas le point dexclamation sa me fé une erreur, sinon dan le cas contraire sa me consomme 100% de cpu et ya pa de fenetre ...
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Ce serait pas un return DefWindowProc(...) plutot ??
Et ne faut il pas definir le msg WM_PAINT oci ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Sans WM_PAINT implemente, le systeme repaint avec le hbrush background par defaut, pas un probleme.
LoadCursor(thisInstance, IDC_ARROW); IDC_ARROW est bien une ressource perso contenue dans ton exe ? Les autres sera idem probleme.
Faut lire Petzold !!!
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

et garder MSDN toujours ouvert.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
60
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
1 juillet 2004

BruNews sa marche pas kan mem ... sa fé tjs le mem probleme ... jvé regarder ton cours.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Et aussi comme dit AlexMan,
return WinProc... assurement NON.
DefWindowProc irait deja beaucoup mieux.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
60
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
1 juillet 2004

sa marche merci les gars =)