Page 1 sur 1

changer les options #PB_Window_... à l'execution

Publié : jeu. 23/févr./2006 19:43
par Patrick88
je crée une fenetre par openwindow avec le parametre #PB_Window_SystemMenu

si je veux par la suite lui rajouter le parametre #PB_Window_SizeGadget

comment fais-je ?

avec des sendmessage, je suppose ?

pat

Publié : jeu. 23/févr./2006 19:53
par Dr. Dri
setwindowlong_ avec #gwl_style
(pas sûr pour la constante, mais cherche sur le forum)

Dri

Publié : jeu. 23/févr./2006 20:13
par Flype
Yep, ya pas d'autres solutions que de passer par l'api win32 sauf pour StickyWindow() dans PB4

Un tout petit example :

Code : Tout sélectionner

If OpenWindow(1,0,0,320,240,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"style") 
  
  hWnd1 = WindowID(1)
  
  If CreateGadgetList(hWnd1)
    ButtonGadget(1,50,50,100,22,"style",#PB_Button_Toggle)
  EndIf
  
  Repeat 
    Select WaitWindowEvent() 
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget 
        Select EventGadget() 
          Case 1
            Select GetGadgetState(1)
              Case 0
                
                Style = GetWindowLong_(hWnd1,#GWL_STYLE) | #WS_DLGFRAME
                ExStyle = GetWindowLong_(hWnd1,#GWL_EXSTYLE) | #WS_EX_WINDOWEDGE
                
                SetWindowLong_(hWnd1,#GWL_STYLE,Style)
                SetWindowLong_(hWnd1,#GWL_EXSTYLE,ExStyle)
                SetWindowPos_(hWnd1,#HWND_TOPMOST,0,0,0,0,#SWP_FRAMECHANGED|#SWP_NOMOVE|#SWP_NOSIZE)
                
              Case 1
                
                Style = GetWindowLong_(hWnd1,#GWL_STYLE) - #WS_DLGFRAME
                ExStyle = GetWindowLong_(hWnd1,#GWL_EXSTYLE) - #WS_EX_WINDOWEDGE
                
                SetWindowLong_(hWnd1,#GWL_STYLE,Style)
                SetWindowLong_(hWnd1,#GWL_EXSTYLE,ExStyle)
                SetWindowPos_(hWnd1,#HWND_TOPMOST,0,0,0,0,#SWP_FRAMECHANGED|#SWP_NOMOVE|#SWP_NOSIZE)
                
            EndSelect
        EndSelect
    EndSelect 
  ForEver
  
EndIf

Publié : ven. 24/févr./2006 14:23
par Patrick88
okay, merci...

je vais pouvoir continuer mon bidule... bien que cela n'ai pas été (trop) bloquant...

merci encore

patrick