Prob WIN32

cs_AngeloVivaldi Messages postés 60 Date d'inscription dimanche 8 décembre 2002 Statut Membre Dernière intervention 1 juillet 2004 - 30 juin 2004 à 00:32
cs_AngeloVivaldi Messages postés 60 Date d'inscription dimanche 8 décembre 2002 Statut Membre Dernière intervention 1 juillet 2004 - 1 juil. 2004 à 18:27
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

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

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AngeloVivaldi Messages postés 60 Date d'inscription dimanche 8 décembre 2002 Statut Membre Dernière intervention 1 juillet 2004
30 juin 2004 à 01:58
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 ...
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 2
30 juin 2004 à 02:18
Ce serait pas un return DefWindowProc(...) plutot ??
Et ne faut il pas definir le msg WM_PAINT oci ?
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
30 juin 2004 à 09:34
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AngeloVivaldi Messages postés 60 Date d'inscription dimanche 8 décembre 2002 Statut Membre Dernière intervention 1 juillet 2004
30 juin 2004 à 17:59
BruNews sa marche pas kan mem ... sa fé tjs le mem probleme ... jvé regarder ton cours.
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
30 juin 2004 à 18:13
Et aussi comme dit AlexMan,
return WinProc... assurement NON.
DefWindowProc irait deja beaucoup mieux.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AngeloVivaldi Messages postés 60 Date d'inscription dimanche 8 décembre 2002 Statut Membre Dernière intervention 1 juillet 2004
1 juil. 2004 à 18:27
sa marche merci les gars =)
0