Window_SizeGadget sans bordure

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Window_SizeGadget sans bordure

Message 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 :wink:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Window_SizeGadget sans bordure

Message 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 
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Window_SizeGadget sans bordure

Message par venom »

Ah API :wink: merci





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Window_SizeGadget sans bordure

Message 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
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Window_SizeGadget sans bordure

Message 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 ?
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Window_SizeGadget sans bordure

Message par venom »

Tiens. Je ne connais pas cette constante
Après je ne demander pas sans api :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Window_SizeGadget sans bordure

Message 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 :D
~~~~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
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Window_SizeGadget sans bordure

Message 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 :)
Dernière modification par Zorro le dim. 20/nov./2016 18:01, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Window_SizeGadget sans bordure

Message par venom »

A fond 8)







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre