Salut,
il n'y a pas d'événement qui gère cela directement.
Voici une solution: Tu dois surclasser la fenêtre.
Voici comment faire:
//--Code de déclarations globales de ta fenêtre-- EXTERN "WinConst.wl" CONSTANTE GWL_WNDPROC = -4 SC_MINIMIZE = 0xF020 FIN //modification de la procedure par défaut defWindowProc est un entier defWindowProc = API("user32","SetWindowLongA",Handle(MaFenêtre),GWL_WNDPROC,&MaProcedure)
//--Code de fermeture de ta fenêtre-- //restauration de la procedure par défaut SI defWindowProc <> 0ALORS API("user32","SetWindowLongA",Handle(MaFenêtre),GWL_WNDPROC,defWindowProc) defWindowProc = 0 FIN
//--Fonction locale MaProcedure-- PROCEDURE MaProcedure(hwnd,uMsg,wParam,lParam) iRetour est un entier = -1 SI hwnd = Handle(MaFenêtre) ALORS SI uMsg = WM_SYSCOMMAND ALORS SI wParam = SC_MINIMIZE ALORS Info("min") //Ceci permet d'annuler le clic sur le bouton minimiser iRetour = 0 FIN FIN FIN SI iRetour = -1 ALORS //Appel de la procedure normale iRetour = API("user32","CallWindowProcA",defWindowProc,hwnd,uMsg,wParam,lParam) FIN RENVOYER iRetour
La fonction MaProcedure te permet de décider ce qui arrivera lors d'un clic sur le bouton minimiser. Si la valeur retournée par la procédure est 0, la procédure normale d'un clic sur le bouton minimiser ne sera pas effectuée.
Mathieu |