MERCI!! J'ai enfin réussi!!!!! je suis un homme heureux!!! lol

Mais il me reste un dernier problème, lorsque j'ouvre la deuxième
fenêtre, et que je la ferme, ça joue, mais si je veux la réouvrir en
cliquant à nouveau sur le bouton, ça ne marche pas

!!!! Est-ce que tu saurais pourquoi??
Voici mon code:
//###################################################
#define ID_BOUTON 100
#define ID_BOUTON2 101
#include <windows.h>
LRESULT CALLBACK ProcedureDeFenetre (HWND,UINT,WPARAM,LPARAM); //prototype de la fonction de traitement des messages
LRESULT CALLBACK ProcedureDeFenetre2 (HWND,UINT,WPARAM,LPARAM); //prototype de la fonction de traitement des messages
HWND Fenetre2;
HINSTANCE hInstance2;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hInstancePrecedente,PSTR LigneDeCommande,int ModeAffichage)
{
char NomProgramme[ ] = "premier test";
char NomProgramme2[ ] = "deuxieme fenetre";
HWND Fenetre; //le type HWND définit un type HANDLE
HWND bouton, bouton2;
MSG Message;
WNDCLASSEX ClasseFenetre;
WNDCLASSEX DeuxFenetre;
//HINSTANCE hInstance2;
ClasseFenetre.cbSize =sizeof(ClasseFenetre);
ClasseFenetre.style = CS_HREDRAW|CS_VREDRAW;
ClasseFenetre.lpfnWndProc =ProcedureDeFenetre;
ClasseFenetre.cbClsExtra =0;
ClasseFenetre.cbWndExtra =0;
ClasseFenetre.hInstance =hInstance;
ClasseFenetre.hIcon =LoadIcon(0,IDI_APPLICATION); //LoadIcon charge un identificateur d'icone
ClasseFenetre.hCursor =LoadCursor(0,IDC_ARROW); //LoadCursor charge un identificateur de curseur
ClasseFenetre.hbrBackground =CreateSolidBrush(RGB(255,255,255)); //définit le fond d'écran de la fenêtre
ClasseFenetre.lpszMenuName =0;
ClasseFenetre.lpszClassName =NomProgramme;
ClasseFenetre.hIconSm =LoadIcon(NULL,IDI_APPLICATION);
DeuxFenetre.cbSize =sizeof(DeuxFenetre);
DeuxFenetre.style = CS_HREDRAW|CS_VREDRAW;
DeuxFenetre.lpfnWndProc =ProcedureDeFenetre2;
DeuxFenetre.cbClsExtra =0;
DeuxFenetre.cbWndExtra =0;
DeuxFenetre.hInstance =hInstance;
DeuxFenetre.hIcon =LoadIcon(0,IDI_APPLICATION); //LoadIcon charge un identificateur d'icone
DeuxFenetre.hCursor =LoadCursor(0,IDC_ARROW); //LoadCursor charge un identificateur de curseur
DeuxFenetre.hbrBackground =CreateSolidBrush(RGB(255,0,0)); //définit le fond d'écran de la fenêtre
DeuxFenetre.lpszMenuName =0;
DeuxFenetre.lpszClassName =NomProgramme2;
DeuxFenetre.hIconSm =LoadIcon(NULL,IDI_APPLICATION);
RegisterClassEx(&ClasseFenetre); //on enregistre la classe de la fenêtre
RegisterClassEx(&DeuxFenetre); //on enregistre la classe de la fenêtre
//CreateWindow va créer "visuellement" une fenetre qui utilisera la classe enregistree
Fenetre=CreateWindow(NomProgramme, //nom de la classe de fenetre
"premier programme", //titre de la fenêtre visible
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX, //style de la
fenetre
GetSystemMetrics(SM_CXSCREEN)/3, //emplacement x à l'appel
GetSystemMetrics(SM_CYSCREEN)/3, //emplacement y à l'appel
200, //taille sur l'axe x
200, //taille sur l'axe y
NULL,
NULL, //handle du menu
hInstance, //handle de l'instance (instance déclarée en haut)
NULL); //paramètres supplementaires
bouton = CreateWindowEx(0,
"BUTTON",
"salut",
WS_VISIBLE|WS_CHILD,
10,
10,
100,
35,
Fenetre,
(HMENU)ID_BOUTON,
hInstance,
NULL);
Fenetre2=CreateWindow(NomProgramme2, //nom de la classe de fenetre
"deuxieme fenetre", //titre de la fenêtre visible
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU, //style de la fenetre
(GetSystemMetrics(SM_CXSCREEN)/3)+50, //emplacement x à l'appel
(GetSystemMetrics(SM_CYSCREEN)/3)+50, //emplacement y à l'appel
200, //taille sur l'axe x
200, //taille sur l'axe y
NULL,
NULL, //handle du menu
hInstance, //handle de l'instance (instance déclarée en haut)
NULL); //paramètres supplementaires
ShowWindow(Fenetre,ModeAffichage);//afficher la fenêtre à l'écran
UpdateWindow(Fenetre);//mise à jour de la fenêtre
//Lecture d'un message dans la file d'attente
while(GetMessage(&Message,NULL,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK ProcedureDeFenetre(HWND fen,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
case WM_COMMAND:
// Vérifie que c'est bien le bouton Vérifie si on à cliquer sur le bouton
if ((LOWORD(wparam) == ID_BOUTON) && (HIWORD(wparam) == BN_CLICKED))
{
ShowWindow(Fenetre2,SW_SHOW);//afficher la fenêtre à l'écran
UpdateWindow(Fenetre2);//mise à jour de la fenêtre
}
break;
case WM_DESTROY:
PostQuitMessage(0);//arret du programme
return 0;
}
return DefWindowProc(fen,msg,wparam,lparam);
}
LRESULT CALLBACK ProcedureDeFenetre2(HWND fen,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
}
return DefWindowProc(fen,msg,wparam,lparam);
}
//#######################################################
Merci encore!!