Rafraichissement de fenêtre (fait soif)

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Non, j'en suis resté au 2ème code :(

du coup, j'ai carrément dessiné la barre de titre dans mon prog, donc la barre de titre de win, à la trappe et plus de problème :mrgreen:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Jean-Paul
Messages : 5
Inscription : dim. 11/avr./2004 16:56

Message par Jean-Paul »

Le Soldat Inconnu a écrit :Non, j'en suis resté au 2ème code :(

du coup, j'ai carrément dessiné la barre de titre dans mon prog, donc la barre de titre de win, à la trappe et plus de problème :mrgreen:
Je viens de trouver une API qui me convient dans mon cas

EnableWindow_(WindowE,#false) pour desactiver
EnableWindow_(WindowE,#True) pour activer
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour

Il me semble sauf erreur que l'API : UpdateWindow_(GadgetID(#Window_0)) , convient trés bien pour rafraichir une fenêtre, mais je suis peut être hors sujet !

Exemple

Code : Tout sélectionner


Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Listview_0 : #Button_0 : #Button_1
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 527, 182, 234, 518,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Régénération")
    If CreateGadgetList(WindowID())
      ListViewGadget(#Listview_0, 15, 10, 190, 440)
      ButtonGadget(#Button_0, 15, 465, 80, 35, "Avec Régenération", #PB_Button_MultiLine)
      ButtonGadget(#Button_1, 125, 465, 80, 35, "Sans Régénération", #PB_Button_MultiLine)
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  
  Event = WaitWindowEvent()
  If Event = #PB_EventGadget
    GadgetID = EventGadgetID()
    If GadgetID = #Button_0
      ClearGadgetItemList(#Listview_0)        
      For n=1 To 50
        AddGadgetItem(#Listview_0,-1,"Ligne N° "+Str(n))
        
        ;*********************************" REGENERATION ECRAN "******************************* 
        UpdateWindow_(GadgetID(#Window_0)) 
        ;**************************************************************************************        
        
        Delay(20)
      Next
    ElseIf GadgetID = #Button_1
      ClearGadgetItemList(#Listview_0)
      For n=1 To 50
        AddGadgetItem(#Listview_0,-1,"Ligne N° "+Str(n))
        Delay(20)
      Next
    EndIf
  EndIf
Until Event = #PB_EventCloseWindow
End


Denis

Bonne Jounée à tous
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Totalement :mrgreen: car dans mon cas, je suis avec des relations fenêtre parents/enfants ayant des processus différents.
voir le premier code du sujet et tu comprendras vite le problème.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

j'ai trouvé, maintenant que j'ai tous finis :cry:
soit je laisse comme c'est, soit je modifie mon logiciel :roll: je me tate :lol:

Code : Tout sélectionner

Delay(1000)

WindowE = GetForegroundWindow_() 

OpenWindow(0, 200, 200, 500, 500, #PB_Window_SystemMenu | #WS_CLIPCHILDREN, "Options") 

SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) | #WS_CHILD | #WS_CLIPCHILDREN)
SetParent_(WindowE, WindowID()) 

Repeat 
  Event = WaitWindowEvent() 
  
Until Event = #WM_CLOSE 

SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) ! #WS_CHILD) 
SetParent_(WindowE, 0)
attention, désactivé le debugger pour tester.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre