Propriété des fenetres dans un MDI gadget.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Propriété des fenetres dans un MDI gadget.

Message par poshu »

En ce moment, je d'écouvre le MDI (joie, bonheur, Yeepeeyaho!) et je bloque sur un détail:
Pour empecher une fenetre d'etre sizable ou maximisable, comment fait on?

Merci d'avance :p.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Propriété des fenetres dans un MDI gadget.

Message par Backup »

poshu a écrit :En ce moment, je d'écouvre le MDI (joie, bonheur, Yeepeeyaho!) et je bloque sur un détail:
Pour empecher une fenetre d'etre sizable ou maximisable, comment fait on?

Merci d'avance :p.
si tu ne met pas #PB_Window_SizeGadget dans le open, ça devrais etre bon non ? :)

et pour le maximisable tu ne mets pas #PB_Window_SystemMenu

sinon ce code de Chris te permetrai de controler le fait ..



; Code par Chris

;/Constantes Window
Enumeration
     #Window_0
EndEnumeration

;/Constantes Gadget
Enumeration
     #Btn_Quit
EndEnumeration

Procedure CallBack(Hnd,msg,wParam,lParam)
    Resultat = #PB_ProcessPureBasicEvents
     Select msg
         Case #WM_SIZE
             Select wParam
                 Case #SIZE_MAXIMIZED : Debug "Fenêtre Maximisée"
                 Case #SIZE_MINIMIZED : Debug "Fenêtre Minimisée"
                 Case #SIZE_RESTORED : Debug "Fenêtre Restaurée"
             EndSelect
            
         Case #WM_SYSCOMMAND
             Select wParam
                 Case #SC_MAXIMIZE : Debug "Clic sur Maximiser"
                 Case #SC_MINIMIZE : Debug "Clic sur Minimiser"
             EndSelect
            
     EndSelect
     ProcedureReturn Resultat
EndProcedure



If OpenWindow ( #Window_0 , 300, 300, 300, 200, "Fenêtre 1" , #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget , 0)
     SetWindowCallback (@CallBack())
    
     If CreateGadgetList ( WindowID ( #Window_0 ))
         ButtonGadget ( #Btn_Quit , 100, 170, 100, 25, "Quitter" )
     EndIf
    
     Repeat
         Select WaitWindowEvent ()
             Case #PB_Event_Gadget
                 Select EventGadget ()
                    
                     Case #Btn_Quit : quit = 1
                 EndSelect
                
             Case #PB_Event_CloseWindow : quit = 1
         EndSelect
     Until quit = 1
     End
EndIf
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

La fenetre DANS un MDI voulais je dire (j'ai pas été clair? désolé)

Le forum anglais cache moultes ressources. J'ai déteré et debuggé un vieux code (opérationel mis à part les scrollbar):

Code : Tout sélectionner

If OpenWindow(0,0,0,400,300,"MDIGadget",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget)
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0))
    MenuTitle("MDI windows menu")
    MenuItem(0, "self created item")
    MenuItem(1, "self created item")
    MDIGadget(0, 0, 0, 0, 0, 0, 2, #PB_MDI_AutoSize)
    OpenWindow(1, 0, 0, 300, 200, "w00t", #PB_Window_TitleBar)
    SetParent_(WindowID(1), GadgetID(0))
    SmartWindowRefresh(0,0)
  EndIf
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
EndIf
Et finalement, j'ai été sauvé par Srod et son code magique:

Code : Tout sélectionner

If OpenWindow(0,0,0,400,300,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget)
  If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0))
    MenuTitle("Menu index 0")
    MenuTitle("MDI windows menu")
    MenuItem(0, "self created item")
    MenuItem(1, "self created item")
    MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize)
    chWnd = AddGadgetItem(0, 1, "ca se resize pas et y'a des scrollbar")
    SetWindowLong_(chWnd, #GWL_STYLE, GetWindowLong_(chWnd, #GWL_STYLE)&~(#WS_SIZEBOX|#WS_SYSMENU|#WS_MAXIMIZEBOX))
  EndIf
  
  Repeat
    EventID = WaitWindowEvent()
    Select EventID
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 0
        EndSelect
    EndSelect
  Until EventID=#PB_Event_CloseWindow
EndIf 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

bon plan :)
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

J'avais pas lu ton poste (vu la premiere phrase qui n'était pas addaptée: on n'ajoute pas une fenetre avec un openwindow() mais avec un AddGadgetItem() ) mais, en effet, le callback de chris marche aussi
Répondre