Pour afficher des fenetres VC++ 6

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

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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...
0
Cdcyrille Messages postés 7 Date d'inscription mardi 19 juin 2001 Statut Membre Derniè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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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...
0
Cdcyrille Messages postés 7 Date d'inscription mardi 19 juin 2001 Statut Membre Dernière intervention 1 mai 2003
15 mars 2003 à 01:18
Merci pour tes réponses, elles m'ont bien aider (surtout la derniere :D)
Aller @+
Et merci encore !
0
Rejoignez-nous