Pourquoi ce bout de code ne fonctionne pas?

cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 18 août 2004 à 13:37
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 18 août 2004 à 17:43
tout est dans le titre, voici le code :

#include <windows.h>
#include "resource.h"

LRESULT CALLBACK AppDlgProc(HWND, UINT, WPARAM, LPARAM);
HWND hMain;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int) 
{
MSG msg;
hMain = CreateDialog(hInstance, (LPCTSTR)IDD_MAIN, 0, AppDlgProc);

while(hMain && GetMessage(&msg, 0, 0, 0))
{
if(!IsDialogMessage(hMain, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

return 0;
}

LRESULT CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
switch(mssg)
{

case WM_DESTROY:
{
PostQuitMessage(0);
break;
}

default:
{
return DefWindowProc (hMain, mssg, wParam, lParam);
}
}

return 0;
}


voila l'erreur du compilo (vc++) :
CreateDialogParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
None of the functions with this name in scope match the target type

si je change LRESULT CALLBACK AppDlgProc(...) en BOOL CALLBACK AppDlgProc(...) ca compile bien mais lors de l'execution il y a un probleme de memoire.
si j'enleve le return DefWindowProc (hMain, mssg, wParam,lParam), l'execution du programme fonctionne mais je peux + fermer le programme avec la croix de la fenetre.
merci pour votre aide

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 août 2004 à 13:59
BOOL CALLBACK pour une dialog et pas autre chose.

DefWindowProc n'a rien a y faire, return 0;
J'ai fait exemple, va voir.

ciao...
BruNews, Admin CS, MVP Visual C++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 août 2004 à 14:03
ICI:
http://www.cppfrance.com/code.aspx?id=21138

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
18 août 2004 à 17:43
merci, c'est le message WM_CLOSE qui me manquait ;)
0
Rejoignez-nous