Rafraichir une fenêtre (windows)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Rafraichir une fenêtre (windows)

Message 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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Rafraichir une fenêtre (windows)

Message par dayvid »

Pas mal :)

Donc ça sert a rafréchire la fenêtre, peut importe ce qu'il y à dedans ?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Rafraichir une fenêtre (windows)

Message par Ar-S »

Oui ça met logiquement à jour la fenêtre et l'affichage de son contenu.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Rafraichir une fenêtre (windows)

Message par kwandjeen »

Il y a une différence avec Updatewindow_(hwnd) ? ou c'est une autre manière de faire ?
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Rafraichir une fenêtre (windows)

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Rafraichir une fenêtre (windows)

Message par Le Soldat Inconnu »

En gros UpdateWindows_( force la fenêtre à se finir de se dessiner sans attendre
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)]
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Rafraichir une fenêtre (windows)

Message par kwandjeen »

Merci à vous deux pour ces explications :D je faisais bêtement update sans savoir pourquoi :mrgreen:
Répondre