Page 1 sur 1
Window_SizeGadget sans bordure
Publié : ven. 18/nov./2016 18:03
par venom
Bonjour,
Voilà je viens de me rendre compte que si on met l'option
#PB_Window_SizeGadget a une fenêtre sans bordure, cette dernière récupère la barre de titre.

C'est possible de faire sans ?
En gros une fenêtre sans bordure mais redimensionnable ?
Voici un code avec
#PB_Window_SizeGadget:
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- gadgets Constants
Enumeration
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 800, 600, "", #PB_Window_BorderLess | #PB_Window_ScreenCentered | #PB_Window_SizeGadget )
ButtonGadget(0, 10, 10, 100, 20, "Close", 0)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
End
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Retirer
#PB_Window_SizeGadget vous comprendrez
@++
Re: Window_SizeGadget sans bordure
Publié : ven. 18/nov./2016 18:55
par Zorro
comme ça :
(voir ici :
http://forums.purebasic.com/english/vie ... bfc4ef65d4 )
Code : Tout sélectionner
;- Window Constants
Enumeration
#Win
EndEnumeration
;- gadgets Constants
Enumeration
EndEnumeration
If OpenWindow(#Win, 0, 0, 800, 600, "", #PB_Window_BorderLess | #PB_Window_ScreenCentered | #PB_Window_SizeGadget |#PB_Window_BorderLess)
SetWindowLongPtr_(WindowID(0),#GWL_STYLE,GetWindowLongPtr_(WindowID(0),#GWL_STYLE)&~ #WS_CAPTION)
ResizeWindow(#Win,GetSystemMetrics_(#SM_CXSCREEN)>>1 - 322>>1,GetSystemMetrics_(#SM_CYSCREEN)>>1 - 275>>1,322,275)
ButtonGadget(0, 10, 10, 100, 20, "Close", 0)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
End
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Re: Window_SizeGadget sans bordure
Publié : ven. 18/nov./2016 19:00
par venom
Ah API

merci
@++
Re: Window_SizeGadget sans bordure
Publié : sam. 19/nov./2016 19:20
par nico
On peut le faire sans api comme ça:
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- gadgets Constants
Enumeration
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 800, 600, "", #WS_THICKFRAME | #PB_Window_BorderLess | #PB_Window_ScreenCentered )
ButtonGadget(0, 10, 10, 100, 20, "Close", 0)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 0
End
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Re: Window_SizeGadget sans bordure
Publié : sam. 19/nov./2016 20:36
par Zorro
nico a écrit :On peut le faire sans api comme ça:
ha bon ? "#WS_THICKFRAME " c'est pas de l'APi ?

la constante est valable pour Linux et MacOs ?
Re: Window_SizeGadget sans bordure
Publié : sam. 19/nov./2016 21:00
par venom
Tiens. Je ne connais pas cette constante
Après je ne demander pas sans api
@++
Re: Window_SizeGadget sans bordure
Publié : dim. 20/nov./2016 15:21
par Ar-S
#WS_THICKFRAME c'est du windows mais faut avouer que c'est bien plus simple que
Code : Tout sélectionner
SetWindowLongPtr_(WindowID(0),#GWL_STYLE,GetWindowLongPtr_(WindowID(0),#GWL_STYLE)&~ #WS_CAPTION)
ResizeWindow(#Win,GetSystemMetrics_(#SM_CXSCREEN)>>1 - 322>>1,GetSystemMetrics_(#SM_CYSCREEN)>>1 - 275>>1,322,275)
Je ne connaissais pas non plus, je prends

Re: Window_SizeGadget sans bordure
Publié : dim. 20/nov./2016 17:49
par Zorro
Ar-S a écrit :#WS_THICKFRAME c'est du windows mais faut avouer que c'est bien plus simple que
Code : Tout sélectionner
SetWindowLongPtr_(WindowID(0),#GWL_STYLE,GetWindowLongPtr_(WindowID(0),#GWL_STYLE)&~ #WS_CAPTION)
ResizeWindow(#Win,GetSystemMetrics_(#SM_CXSCREEN)>>1 - 322>>1,GetSystemMetrics_(#SM_CYSCREEN)>>1 - 275>>1,322,275)
oui, c'est clair , c'est cool 
Re: Window_SizeGadget sans bordure
Publié : dim. 20/nov./2016 17:49
par venom
A fond
@++