Redefinir les options d'une fenêtre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Redefinir les options d'une fenêtre

Message par Le Soldat Inconnu »

alors il faut peut-être masquer la fenêtre, la modifier et réafficher la fenêtre. Est-ce mieux ?

Code : Tout sélectionner

    ;- Window Constants
    ;
    Enumeration
			#Window_0
		EndEnumeration
		
		
		
    If OpenWindow(#Window_0, 0, 0, 600, 300, "Ma fenêtre",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
			
			ButtonGadget(0, 5, 5, 290, 25, "Retirer la bordure")
			ButtonGadget(1, 305, 5, 290, 25, "Remettre la bordure")
			ButtonGadget(2, 5, 35, 290, 25, "Retirer le bouton minimiser")
			ButtonGadget(3, 305, 35, 290, 25, "Remettre le bouton minimiser")
			ButtonGadget(4, 5, 65, 290, 25, "Retirer le bouton maximiser")
			ButtonGadget(5, 305, 65, 290, 25, "Remettre le bouton maximiser")
			
			Repeat ; Start of the event loop
				
				Event = WaitWindowEvent() ; This line waits until an event is received from Windows
				
				WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
				
				;You can place code here, and use the result as parameters for the procedures
				
				If Event = #PB_Event_Gadget
					GadgetID = EventGadget() ; Is it a gadget event?
					EventType = EventType() ; The event type
					Select GadgetID
						Case 0
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style & ~#WS_TILEDWINDOW)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
						Case 1
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style | #WS_TILEDWINDOW)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
						Case 2
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style & ~#WS_MINIMIZEBOX)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
						Case 3
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style | #WS_MINIMIZEBOX)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
						Case 4
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style & ~#WS_MAXIMIZEBOX)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
						Case 5
							HideWindow(#Window_0, 1)
							; On récupère le style de la fenêtre
							Style = GetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE)
							; On modifie le style
							SetWindowLongPtr_(WindowID(#Window_0), #GWL_STYLE, Style | #WS_MAXIMIZEBOX)
							HideWindow(#Window_0, 0)
							UpdateWindow_(WindowID(#Window_0))
							
					EndSelect
				EndIf
				
			Until Event = #PB_Event_CloseWindow ; End of the event loop
			
		EndIf
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Redefinir les options d'une fenêtre

Message par Kwai chang caine »

Bravo soldat....ça marche pour moi, merci 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Redefinir les options d'une fenêtre

Message par MLD »

Excuse du retard soldat.
Maintenant tous est OK
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Redefinir les options d'une fenêtre

Message par dayvid »

Ouais nikel :)
merci :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Redefinir les options d'une fenêtre

Message par Ar-S »

Je réouvre ce topic car le soucis de 'disparition' du gadget perdure.
Avec ton dernier code LSI, le bouton maximise ne disparait pas, il se desactive seulement. Idem pour minimiser.
Il ni a qu'en desactivant les 2 qu'ils disparaissent, or, je souhaiterai que ma barre comporte la croix et le bouton minimiser seulement.
As tu (y'a t il) une solution (windows 8 ) ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
XD73
Messages : 8
Inscription : mer. 02/janv./2013 15:40

Re: Redefinir les options d'une fenêtre

Message par XD73 »

Bonjour,

Je ne crois pas que ce soit possible, le comportement me semble "Normal"
Cordialement.
Répondre