Page 1 sur 1
Fenêtre sans bordure
Publié : mar. 14/oct./2014 13:59
par pat
Bonjour à tous,
Avec OpenWindow(----,#PB_Bordeless) la fenêtre n'a pas de bordure.
C'est OK mais je souhaite faire des opérations sur une fenêtre normale avec bordure, ne pas la fermer et supprimer après la bordure.
Doit-on utiliser SetWindowLong_(----).
Mais que doit-on mettre pour que la fenêtre n'ai plus de bordure et également pour remettre la bordure ?
Merci à ceux qui savent de donner un élément de réponse, qui servira également aux autres utilisateurs de PB.
Re: Fenêtre sans bordure
Publié : mer. 15/oct./2014 10:18
par MLD
Salut pat
Voici la moitié de ton problème, mais pour revenir a la fenêtre avec bordure ce n'est pas évident, et je n'est pas trop le temp, mais d'autres trouverons surement.
Code : Tout sélectionner
Procedure change()
SetWindowLongPtr_(WindowID(0),#GWL_STYLE,GetWindowLongPtr_(WindowID(0),#GWL_STYLE)&~#WS_BORDER)
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(1, 20, 150, 80, 40,"Change")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case 1
Select EventType()
Case #PB_EventType_LeftClick
change()
EndSelect
EndSelect
EndIf
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
a plus
Re: Fenêtre sans bordure
Publié : mer. 15/oct./2014 10:47
par kernadec
bonjour
Ce code de RASHAD est cool

on bascule avec F12 (sous Window)
http://www.purebasic.fr/english/viewtop ... 13&t=60287
Cordialement
Re: Fenêtre sans bordure
Publié : mer. 15/oct./2014 12:09
par Lord Nelson
Salut,
Code : Tout sélectionner
Procedure DisableWindowsBorder(WindowNomber.i, State.i)
; On r�cup�re le style de la fen�tre
Style = GetWindowLongPtr_(WindowID(WindowNomber), #GWL_STYLE)
; On modifie le style
If State = #False
SetWindowLongPtr_(WindowID(WindowNomber), #GWL_STYLE, Style | #WS_TILEDWINDOW)
ElseIf State = #True
SetWindowLongPtr_(WindowID(WindowNomber), #GWL_STYLE, Style & ~#WS_TILEDWINDOW)
Else
SetWindowLongPtr_(WindowID(WindowNomber), #GWL_STYLE, Style | #WS_TILEDWINDOW)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 150, 100, "Abc", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(1, 10, 10, 100, 25, "Avec Bordure")
ButtonGadget(2, 10, 40, 100, 25, "Sans Bordure")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
DisableWindowsBorder(0, #False)
ResizeWindow(0, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore)
Case 2
DisableWindowsBorder(0, #True)
ResizeWindow(0, #PB_Ignore, #PB_Ignore, #PB_Ignore, #PB_Ignore)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Re: Fenêtre sans bordure
Publié : mar. 21/oct./2014 13:19
par pat
Merci à tous pour vos réponses respectives.
Je vais regarder ça de plus prêt mais je suis sûr que cela fonctionne.
Merci encore.