Page 1 sur 1

MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 13:58
par GallyHC
Bonjour,

Voila, j'ai encore un problème avec la version 5.41 LTS de PureBasic. En gros avec une fenêtre MDI on capture les events de la même méthode qu'une fenêtre normal, mais la chez moi, si je redimensionne la fenêtre Fille rien ne ce passe. Pouvez-vous vérifier avec le code mis ci-dessous si vous avez le problème avec la version 5.41 LTS.

Code : Tout sélectionner

  #FenetrePrincipale  = 0
  #FenetreFille       = 1
  
  If OpenWindow(#FenetrePrincipale, 0, 0, 400, 300, "MDIGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget)
    If CreateMenu(#FenetrePrincipale, WindowID(#FenetrePrincipale))
      MenuTitle("Index de menu 0")
      MenuTitle("Menu des fenêtres filles")
        MenuItem(0, "Elément auto-créé")
        MenuItem(1, "Elément auto-créé")
      MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize)
        AddGadgetItem(0, #FenetreFille, "Fenêtre fille")
      UseGadgetList(WindowID(#FenetrePrincipale))
    EndIf
    Repeat
      event = WaitWindowEvent()
      ;
      ; INFORMATION DU RESIZE DE LA FENÊTRE (MERE OU FILLE).
      ;
      If event = #PB_Event_SizeWindow
        Debug "Resize = " + GetWindowTitle(EventWindow())
      EndIf
      ;
      ; INFORMATION DU RESIZE DE LA FENÊTRE (MERE OU FILLE).
      ;
    Until event = #PB_Event_CloseWindow
  EndIf
Merci d'avance,
GallyHC

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 15:52
par falsam
C'est un bug signalé sur le forum Anglais http://purebasic.fr/english/viewtopic.p ... 98#p479898

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 15:54
par GallyHC
merci falsam ce cette précision.

GallyHC

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 16:00
par Anonyme2
en mettant un debug dans la boucle de la valeur de l'événement, la valeur event = 13115 s'affiche lorsque l'on redimensionne la fenêtre fille.

Code : Tout sélectionner

    Repeat
      event = WaitWindowEvent()
      ;
      ; INFORMATION DU RESIZE DE LA FENÊTRE (MERE OU FILLE).
      
      If event = #PB_Event_SizeWindow
        Debug "Resize = " + GetWindowTitle(EventWindow())
      ElseIf event = 13115
        Debug "Resize : " + GetWindowTitle(#FenetreFille)
      EndIf
      ;
      ; INFORMATION DU RESIZE DE LA FENÊTRE (MERE OU FILLE).
      ;
    Until event = #PB_Event_CloseWindow

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 16:03
par falsam
Bonne solution de contournement Denis :wink:

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 16:07
par Anonyme2
L'agrandissement/réduction de la fenêtre mère répond aussi à la valeur 13115.

Par contre, GetWindowTitle(EventWindow()) retourne la bonne chaine quelque soit la fenêtre donc à utiliser de pair avec l'événement en attendant que le mécanicien ai réparé PB :mrgreen:

ou il y a peut-être mieux en fouillant un peu...

Re: MDI problème avec #PB_Event_SizeWindow (PB 5.41 LTS)

Publié : mar. 19/janv./2016 16:14
par falsam
@Denis (et les autres) 13115 correspond au flag #PB_Event_Repaint