Pour afficher des fenetres VC++ 6

Signaler
Messages postés
7
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
1 mai 2003
-
Messages postés
7
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
1 mai 2003
-
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 !

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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...
Messages postés
7
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
1 mai 2003

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.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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...
Messages postés
7
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
1 mai 2003

Merci pour tes réponses, elles m'ont bien aider (surtout la derniere :D)
Aller @+
Et merci encore !