cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008
-
28 mars 2002 à 15:36
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008
-
29 mars 2002 à 21:44
voila, je faisait un prog, et pis tout d'un coup, j'ai eu envie de changer son design, qui été deja sous API WIN32.
ce design consiste a avoir une dialog "menu" et en appeler d'autres pour les fonctions :
1er pb : -comment appeler plusieurs dialog, par ex, quand on click qur le bouton "ajouter", on appel la dialog "ADD" ??
2e pb : - comment les faires communiquer entres elles ??
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{/*le code un peu casse-cou....
case IDADDSONG:{
{
HINSTANCE hInstance;
int nCmdShow;
HWND hdlg;
MSG Msg;
jcecchi
Messages postés117Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention14 janvier 20033 28 mars 2002 à 20:26
>>1er pb : -comment appeler plusieurs dialog, par ex, quand on click qur le bouton "ajouter", on appel la dialog "ADD" ??
Ce qui ne va pas dans ton code c'est que tu n'as qu'une seule procedure DlgProc pour ta boite de dialogue principale.
Dans case IDADDSONG tu cree un nouvelle boite de dialogue mais avec la meme procedure. Il faut donc creer une nouvelle procedure par exemple AddSongProc(.......).
Il faut en faire de meme pour chaque boite de dialogue.
Ensuite tu fais ton
CreateDialog(,,,(DLGPROC)AddSongProc);
De plus pas besoin de creer une nouvelle boucle de message : elle existe deja dans WinMain.
2e pb : - comment les faires communiquer entres elles ??
D'abord il faut creer des messages, par exemple :
#define WM_VALIDSONG WM_USER+1
Et dans la procedure de la boite de dialogue a laquelle doit parvenir ce message tu met
case WM_VALIDSONG:
...
Pour la communication entre boite de dialogue tu fais des SendMessage avec les messages que tu as definis.
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 28 mars 2002 à 20:44
alors voila, j'ai fait comme tu m'a dit : mais la y'a pas d'erreurs, de warnings, ou autre mais quand je click sur le bouton "ajouter une chanson", rien ne se passe.
et comme tu vois, a l'endroit ou la dialog devrait se creer/afficher, rien ne se passe, mais en plus, etonnant, la creation de la fenetre n'echoue meme pas et la fonction est bien lu !! (donc devrait avoir été executé)....
jcecchi
Messages postés117Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention14 janvier 20033 29 mars 2002 à 12:24
Ok, tu as bien enlever la deuxieme boucle de message, mais il faut quand meme laisser le ShowWindow et le UpdateWindow pour l'affichage de la boite de dialogue.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 29 mars 2002 à 18:39
voila, ca marche !
mais toujours un pb :
quand je demande de fermer la seconde boite de dialog, c'est une fermeture globale : tu le programme ce termine alors que moi, je veux juste fermer la seconde boite