Page 1 sur 1

Rafraichir une fenêtre (windows)

Publié : ven. 22/juil./2011 12:25
par Ar-S
Voilà une petite lib pour "rafraichir" une fenêtre windows, elle utilise l'API RedrawWindow_

Code : Tout sélectionner

Procedure.c RefreshWindow(NumWindow)
  ; rafraichir une fenêtre par Ar-S / 2011
  Protected Refresh_It.c
  Refresh_It = RedrawWindow_(WindowID(NumWindow),0,0,#RDW_UPDATENOW) 
  If Refresh_It = #False  
    ProcedureReturn 0
  Else
    ProcedureReturn 1
  EndIf
EndProcedure

; Example
If OpenWindow(0, 614, 185, 500, 126, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  ButtonGadget(1, 310, 10, 175, 24, "Rafraichir")
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            Rafraichir=RefreshWindow(0)
            ; Si résultat = 0 echec sinon resultat = 1
            Debug Rafraichir
            
        EndSelect
        
      Case #PB_Event_CloseWindow
        Select EventWindow()
          Case 0
            quite = 1
        EndSelect
    EndSelect
  Until quite = 1
  CloseWindow(0)
  End
EndIf

J'ai ajouté la commande dans ma compile de Libs (Ar-S Libs) disponible ICI

Re: Rafraichir une fenêtre (windows)

Publié : ven. 22/juil./2011 12:43
par dayvid
Pas mal :)

Donc ça sert a rafréchire la fenêtre, peut importe ce qu'il y à dedans ?

Re: Rafraichir une fenêtre (windows)

Publié : ven. 22/juil./2011 13:31
par Ar-S
Oui ça met logiquement à jour la fenêtre et l'affichage de son contenu.

Re: Rafraichir une fenêtre (windows)

Publié : ven. 22/juil./2011 16:11
par kwandjeen
Il y a une différence avec Updatewindow_(hwnd) ? ou c'est une autre manière de faire ?

Re: Rafraichir une fenêtre (windows)

Publié : ven. 22/juil./2011 20:16
par Ar-S
Réponse tirée de msdn

RedrawWindow :
The RedrawWindow function updates the specified rectangle or region in a window's client area.

UpdateWindow :
The UpdateWindow function updates the client area of the specified window by sending a WM_PAINT message to the window if the window's update region is not empty. The function sends a WM_PAINT message directly to the window procedure of the specified window, bypassing the application queue. If the update region is empty, no message is sent.

Re: Rafraichir une fenêtre (windows)

Publié : lun. 25/juil./2011 8:53
par Le Soldat Inconnu
En gros UpdateWindows_( force la fenêtre à se finir de se dessiner sans attendre

Re: Rafraichir une fenêtre (windows)

Publié : lun. 25/juil./2011 9:09
par kwandjeen
Merci à vous deux pour ces explications :D je faisais bêtement update sans savoir pourquoi :mrgreen: