Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fenetres Filles

1 réponse
Avatar
Fabien Mas
Pourquoi les fentres filles ont elles obligatoirement des boutons de
reduction et d'agrandissement ?
comment les supprimer ?

1 réponse

Avatar
ted
"Fabien Mas" écrivait news:410e4d88$0$32519
$:

Pourquoi les fentres filles ont elles obligatoirement des boutons de
reduction et d'agrandissement ?
comment les supprimer ?






Salut,

Les filles MDI ont des boutons d'agrandissement et de réduction car ont
doit pouvoir les agrandir ou les réduire dans la zone client de la mère
MDI. C'est tout le principe du MDI (regarde Word, Excel...).
Maintenant tu peux faire du multi-fenêtrage avec OuvreFille() sur des
fenêtres libres. Dans ce cas tu peux choisir d'avoir ou non ces boutons.

Si tu veux vraiement des filles MDI sans ces boutons cela doit pouvoir se
faire en changeant le style Windows de la fenêtre via la fonction
"SetWindowLong" de l'API, mais ton appli sera "non standard".

Cela donne un code du genre (grâce à WDAPI :-) ) :

CONSTANTE
GWL_STYLE=-16//(-16)

WS_MAXIMIZE777216//0x01000000L
WS_MAXIMIZEBOXe536//0x00010000L
WS_MINIMIZES6870912//0x20000000L
WS_MINIMIZEBOX1072//0x00020000L
FIN

eAncienStyle est un entier // Type C :LONG
hWnd est un entier=Handle() // Type C :HWND, handle de la fenêtre
nIndex est un entier=GWL_STYLE // Type C :int, pour le style

//Récupération du style actuel de la fenêtre
eAncienStyle=API("USER32","GetWindowLongA",hWnd,nIndex)

//Ici changement de la valeur du style
//Si il y a le bouton de maximisation on l'enlève
SI ETBinaire(eAncienStyle,WS_MAXIMIZEBOX) ALORS eAncienStyle-
=WS_MAXIMIZEBOX
//Si il y a le bouton d'iconisation on l'enlève
SI ETBinaire(eAncienStyle,WS_MINIMIZEBOX) ALORS eAncienStyle-
=WS_MINIMIZEBOX


//Nouveau style
API("USER32","SetWindowLongA",hWnd,nIndex,eAncienStyle)


--
En esperant t'avoir aidé.
ted