Redefinir les options d'une fenêtre
Redefinir les options d'une fenêtre
Comment je fait pour redéfinir plus tard les options d'une fenêtre ?
#PB_Window_SystemMenu
#PB_Window_MinimizeGadget
#PB_Window_MaximizeGadget
#PB_Window_SizeGadget
#PB_Window_Invisible
#PB_Window_TitleBar
#PB_Window_BorderLess
#PB_Window_Tool
#PB_Window_ScreenCentered
#PB_Window_WindowCentered
#PB_Window_Maximize
#PB_Window_Minimize
#PB_Window_NoGadgets
#PB_Window_SystemMenu
#PB_Window_MinimizeGadget
#PB_Window_MaximizeGadget
#PB_Window_SizeGadget
#PB_Window_Invisible
#PB_Window_TitleBar
#PB_Window_BorderLess
#PB_Window_Tool
#PB_Window_ScreenCentered
#PB_Window_WindowCentered
#PB_Window_Maximize
#PB_Window_Minimize
#PB_Window_NoGadgets
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Re: Redefinir les options d'une fenêtre
Oui
Quand tu crée une fenêtre, tu lui donne des option d'accord
et bien moi je voudrait changer ces option plus tard tu comprend

Quand tu crée une fenêtre, tu lui donne des option d'accord
et bien moi je voudrait changer ces option plus tard tu comprend
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
Re: Redefinir les options d'une fenêtre
Pour ce qui est de l'état de la fenêtre (minimiser, maximiser et normal), utilise SetWindowState(#taFenêtre,#PB_Window_Normal) etc..
pour le centrer mes fenêtre, j'utilise resizewindow en ayant avant capturé la taille de l'écran.
Pour invisible = > HideWindow()
nogadget => HideGadget ou DisableGadget selon que tu souhaites les faire disparaitre ou seulement les désactiver..
Regarde les commandes commençant par Set dans la doc.
pour le centrer mes fenêtre, j'utilise resizewindow en ayant avant capturé la taille de l'écran.
Pour invisible = > HideWindow()
nogadget => HideGadget ou DisableGadget selon que tu souhaites les faire disparaitre ou seulement les désactiver..
Regarde les commandes commençant par Set dans la doc.
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Redefinir les options d'une fenêtre
Après pour les bordures par exemple, il faut passer par l'API.
Avec un code d'exemple, je me ferais un plaisir de compléter les fonctions qui te manque.
Sinon, tu peux regarder ce code
http://www.purebasic.fr/french/viewtopi ... =3&t=11360
il comporte ce que tu cherches quand tu fais clic droit sur l'élément "Style" d'une fenêtre.
Avec un code d'exemple, je me ferais un plaisir de compléter les fonctions qui te manque.
Sinon, tu peux regarder ce code
http://www.purebasic.fr/french/viewtopi ... =3&t=11360
il comporte ce que tu cherches quand tu fais clic droit sur l'élément "Style" d'une fenêtre.
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Redefinir les options d'une fenêtre
Heu, Merci beaucoup Le Solda Inconnu
Tu veux un exemple ?
Bin par exemple tu ouvre une fenêtre avec toutes les options souhaiter :
Violà et donc la je voudrait par exemple plus tard changer ses options
Par exemple qu’on ne puisse plus la maximiser ou minimiser
Faire disparaitre la Barre de titre, etc etc.
Est-ce que je suis asses claire ?
Attention, je pense anticiper ce que vous aller me dire
"et bien ferme la fenêtre et recrée la avec les options voulue !"
Oui mais FAUX, il ne faut pas qu’on ferme la fenêtre
Par exemple pour ne pas perdre les modifications sur celle-ci
C'est possible au moins de faire ça ?
Tu veux un exemple ?
Bin par exemple tu ouvre une fenêtre avec toutes les options souhaiter :
Code : Tout sélectionner
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 559, 224, 600, 300, "Ma fenêtre", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Window_0))
EndIf
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
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;
EndIf
EndProcedure
Open_Window_0()
Par exemple qu’on ne puisse plus la maximiser ou minimiser
Faire disparaitre la Barre de titre, etc etc.
Est-ce que je suis asses claire ?
Attention, je pense anticiper ce que vous aller me dire

"et bien ferme la fenêtre et recrée la avec les options voulue !"
Oui mais FAUX, il ne faut pas qu’on ferme la fenêtre
Par exemple pour ne pas perdre les modifications sur celle-ci
C'est possible au moins de faire ça ?

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Redefinir les options d'une fenêtre
voilà déjà un exemple pour retirer la bordure, désactiver le bouton minimiser ou le bouton maximiser
Ensuite le principe est le même pour tout les autres styles, il faut regarder la liste sur msdn
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
; 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)
Case 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)
Case 2
; 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)
Case 3
; 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)
Case 4
; 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)
Case 5
; 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)
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Redefinir les options d'une fenêtre
Salut LSI
Heu! chez moi ce code de fonctionne pas
Heu! chez moi ce code de fonctionne pas

-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Re: Redefinir les options d'une fenêtre
moi aussi je suis sous xp , il faut a chaque fois baisser la fenetre pour que ça marche .MLD a écrit :Salut LSI
Heu! chez moi ce code de fonctionne pas
Jbernard13
Re: Redefinir les options d'une fenêtre
Sur 7 ça marche en tout cas.
Pour ce qui est des boutons max et min, lorsqu'on en fait disparaitre un, il se désactive sans disparaitre.
C'est seulement si on désactive le second que les 2 disparaissent. Étrange ce comportement.
Pour ce qui est des boutons max et min, lorsqu'on en fait disparaitre un, il se désactive sans disparaitre.
C'est seulement si on désactive le second que les 2 disparaissent. Étrange ce comportement.
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Redefinir les options d'une fenêtre
Merci LSI
Moi sa ne marche pas sous sevent enfin pas tous, seule la désactivation des boutons marche
mais il ne disparaisse pas (foutue api de m......) tu change de système d'exploitation et plus rien ne marche
Je testerais sous vista !

Moi sa ne marche pas sous sevent enfin pas tous, seule la désactivation des boutons marche
mais il ne disparaisse pas (foutue api de m......) tu change de système d'exploitation et plus rien ne marche

Je testerais sous vista !
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
Re: Redefinir les options d'une fenêtre
Bonjour !
LSI, ton code marche a merveil sur vista, superbe, merci a toi
j'ai même r'ajouté une fonction pour désactiver et réaciver le bouton fermer
LSI, ton code marche a merveil sur vista, superbe, merci a toi

j'ai même r'ajouté une fonction pour désactiver et réaciver le bouton fermer

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Re: Redefinir les options d'une fenêtre
je viens de passer sous Seven64 et le code marche tres bien
Jbernard13
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Redefinir les options d'une fenêtre
Sinon, il faut un WindowUpdate_(
comme cela :
Est-ce que cela fonctionne pour tout le monde ?
comme cela :
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
; 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)
UpdateWindow_(WindowID(#Window_0))
Case 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)
UpdateWindow_(WindowID(#Window_0))
Case 2
; 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)
UpdateWindow_(WindowID(#Window_0))
Case 3
; 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)
UpdateWindow_(WindowID(#Window_0))
Case 4
; 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)
UpdateWindow_(WindowID(#Window_0))
Case 5
; 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)
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Redefinir les options d'une fenêtre
Juste pour info, pour moi ça marche pas du tout, aucun effet avec la v4.51 , XP PRO
J'ai meme essayé de remplacer leparpour essayer de redessiner la fenetre plutot que de l'updater, mais rien n'y fait
J'ai meme essayé de remplacer le
Code : Tout sélectionner
UpdateWindow_(WindowID(#Window_0))
Code : Tout sélectionner
RedrawWindow_(WindowID(#Window_0), 0, 0, #RDW_INVALIDATE|#RDW_UPDATENOW)