Cdcyrille
Messages postés7Date d'inscriptionmardi 19 juin 2001StatutMembreDernière intervention 1 mai 2003
-
14 mars 2003 à 19:16
Cdcyrille
Messages postés7Date d'inscriptionmardi 19 juin 2001StatutMembreDernière intervention 1 mai 2003
-
15 mars 2003 à 01:18
Voila j'aimerai afficher plusieurs fenetre sous VC++ 6
le probleme c qu'avec un HRESULT on peut pas trop le faire ou alors il faut creer de nouveau DLGPROC mais je c pas du tout comment faire.
Alors plz j'aimerai un peu d'aide c par exemple pour faire une fenetre a propos de sans pour autant quand je clique sur le bouton Ok il ferme tout le programme !
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 mars 2003 à 23:54
Et alors, ta question contient la reponse. Puisque tu dis que OK ferme ton prog, traite le message IDOK et ne le laisse pas suivre son chemin.
BruNews, ciao...
Cdcyrille
Messages postés7Date d'inscriptionmardi 19 juin 2001StatutMembreDernière intervention 1 mai 2003 15 mars 2003 à 00:28
Oui mais comment je fait je t'ecrit une partie de mon prog :
HRESULT DlgProc(HWND dlgHandle,UINT uMsg,WPARAM Wparam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hinstancePRECEDENTE, LPSTR CmdLine, int CmdShow)
{
DialogBox(0,MAKEINTRESOURCE(IDD_Maindlg), GetDesktopWindow(), (DLGPROC)DlgProc);
return 0;
}
HRESULT DlgProc(HWND dlgHandle,UINT uMsg,WPARAM Wparam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(LOWORD(Wparam))
{
case IDCLOSE:
if (HIWORD(Wparam) == BN_CLICKED)
exit(0);
break;
case IDABORT:
if (HIWORD(Wparam) == BN_CLICKED)
DialogBox(0,MAKEINTRESOURCE(IDD_Maindlg), GetDesktopWindow(), (DLGPROC)DlgProc); //<---------- ICI c peut etre la facon de l'appeler
break;
case IDOK:
if (HIWORD(Wparam) == BN_CLICKED)
exit(0); //<------------ ICI avec ca il ferme TOUT
break;
}
break;
}
return 0;
}
Voila je croit simplement que je doit pas appeler la feuille a propos comme ca ou alors je la ferme d'un autre facon.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 mars 2003 à 00:59
Plusieurs choses:
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) suffit comme declaration si tu n'exploites pas les params. Dans tous les cas le 2eme est inutile car il vaut 0 sur Win32.
DialogBox, 3eme param tu mets 0 en place du hdesktop.
Point IMPORTANT: on ne sort pas d'un prog par exit() mais par la boucle des messages ou par EndDialog(hdlg, v) dans ton cas.
Tl faut aussi eviter switch(LOWORD(Wparam)) dans WM_COMMAND si pas utile, BN_CLICKED = 0 donc switch(Wparam) te suffisait.
case IDOK: break; // ENTER ne ferme plus.
case IDCANCEL: EndDialog(hdlg, 0); // ferme
return 0;
BruNews, ciao...