Dialogbox

Signaler
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
-
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
-
Bonsoir a tous,



Voila mon problème. Les ressources chez moi ne fonctionnant pas sous
Dev-cpp, il m'était alors pas possible de créer des boite de dialogue,
jusqu'a ce que je trouve la fonction DialogBox. Je me suis dit chouette
chouette, je l'applique donc et code la fonction de reception des
messages pour celle-ci. Voila ce que ça donne :



// LRESULT CALLBACK WinProc

case : IDM_ABOUT


DialogBox(GlobalHInstance,(LPCTSTR)IDD_ABOUT,hwnd,(DLGPROC)About);




break;







// La fonction de recept des message de la dialogbox

LRESULT CALLBACK About (HWND hwdlg, UINT message, WPARAM wParam, LPARAM lParam){

HWND hwSomething;

switch(message){

case WM_INITDIALOG:




hwSomething=CreateWindow("static","test",WS_VISIBLE | WS_CHILD |
WS_BORDER,30,40,60,50,hwdlg,NULL,GlobalHInstance,NULL);



return TRUE;



case WM_COMMAND:

if (LOWORD(wParam) IDOK || LOWORD(wParam) IDCANCEL)

{

EndDialog(hwdlg, LOWORD(wParam));

return TRUE;

}

break;

}

return FALSE;

}





A la compilation niquel, aucune erreur. Mais voila, quand je clique sur le bouton ? de ma barre de menu rien ne se passe.



Quelqu'un peut-il m'aider?



Merci d'avance.

11 réponses

Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

salut,

et si tu essay sous cette forme:


DialogBox(GlobalHInstance, MAKEINTRESOURCE(IDD_ABOUT), hwnd, About);

++
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
non cela ne va tjrs pas :s
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Esque dans ton ressource tu est en WS_VISIBLE et je sais pas si ça change quelque chose mais moi j'utilise pas LRESULT CALLBACK mais BOOL CALLBACK , faudrai voir aussi la defintion de ton dialog dans ton fichier ressource.
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

J'utilise DevC++ et ça m'arrive souvent comme cela. Essaie de supprimer le fichier de ressource créé automatiquement par DevC++ nommé nomprojet_private.rc qui se trouve dans le dossier du projet et recompile tout.
Mais avant tout, si tu as defini IDD_ABOUT dans le fichier d'en-tête, utilise :
DialogBox(GlobalHInstance, MAKEINTRESOURCE(IDD_ABOUT), hwnd, About);
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Dans ce genre de cas essaye, un appel de GetLastError pour savoir ce qui ne tourne pas rond (DialogBox retourne -1 s'il ya eu une erreur).
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
pour info mon projet ne contient aucun fichier ressource. il est juste composé de main.cpp . Cela ne vas tjrs pas grr
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Regarde la dernière source postée, il y a un exemple de DialogBox avec DevCpp
Elle parle de conversion mais bon l'essentiel est là.

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Si ton projet ne contient pas de fichier ressource, pourquoi tu utilises DialogBox(...).
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
il faut obligatoirement un fichier ressource? comment je fait alors
pour créer une dialogbox sans fichier ressource? est-ce possible?
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Non pas obligatoirement. Tu peux utliser DialogBoxIndirect mais c'est moins pratique. Tu peux également passer par l'API pour mettre en place ta boîte de dialogue perso (CreateWindowEx, etc.).
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
ha ok, car sur ma machine dev foire totalement les ressource , il mais
erreur de synthax alors que j'ai rien touché dans le .rc :s . exemple
quand je fait propriété projet et que je clique pour choisir une icone,
a la compilation il met erreur de synthaxe alors que j'ai rien touché
d'autre, enfin cela restera un mystère mdr. Donc je suis obligé de
faire sans les ressources.