Savoir si une fenetre est visible + Cacher ou montrer une fenetre


Propriétés du code


Date de création : 31/12/2006 à 15:07:00
2 Commentaire(s)
  MadMatt

 

Présentation


Voilà 3 fonctions
1 pour savoir si une fenetre est visible
1 pour cacher une fenetre
1 pour montrer une fenetre cachée

Par contre j'ai eu un conflit de nom entre la fonction ShowWindow et l'api qui porte le meme nom. J'ai donc renommé l'api, si vous avez une meilleure méthode ??

Il faudrait également faire une fonction ShowWindowEx pour gérer les arguments (minimiser, agrandir...)

 

Code


' Fenêtre visible ou pas
Public Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Boolean
' Montrer la fenêtre
Public Declare Function ShowWindowA Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
' Constantes associées :
Public Const SW_HIDE = 0
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWNA = 8
Public Const SW_RESTORE = 9


'---------------------------------------------------------------------------------------
' Procedure : WindowVisible
' DateTime  : 31/12/2006 14:50
' Author    : Vb System Library
' Purpose  : Renvoie TRUE si la fenetre est visible, FALSE dans le cas contraire
' Params    : hWnd : Handle de la fenetre
'---------------------------------------------------------------------------------------
Public Function WindowVisible(ByVal hWnd As Long) As Boolean
    WindowVisible = IsWindowVisible(hWnd)
End Function


'---------------------------------------------------------------------------------------
' Procedure : ShowWindow
' DateTime  : 31/12/2006 14:54
' Author    : Vb System Library
' Purpose  : Permet de montrer une fenetre qui n'était pas visible
' Params    : hWnd : Handle de la fenetre
'---------------------------------------------------------------------------------------
Public Function ShowWindow(ByVal hWnd As Long)
    ShowWindowA hWnd, SW_SHOW
End Function


'---------------------------------------------------------------------------------------
' Procedure : HideWindow
' DateTime  : 31/12/2006 14:54
' Author    : Vb System Library
' Purpose  : Permet de cacher une fenetre qui était visible
' Params    : hWnd : Handle de la fenetre
'---------------------------------------------------------------------------------------
Public Function HideWindow(ByVal hWnd As Long)
    ShowWindowA hWnd, SW_HIDE
End Function


 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


De sebdraluorg le 05/03/2007 à 20:23


Salut,

Autre methode pour savoir si une fenetre est visible:

Private Const WS_VISIBLE = &H10000000
Private Const GWL_EXSTYLE = (-20)

Public Function IsWinVis(ByVal hWnd As Long) As Boolean

IsWinVis = (GetWindowLong(hWnd, GWL_STYLE) And WS_VISIBLE)

End Function

Mais j'ai pas comparer la rapidité...

++

 

De MadMatt le 05/03/2007 à 22:09


Oui effectivement il y a ça aussi, et à y penser c'est peut etre plus rapide vu que c'est une fonction "de plus bas niveau" que IsWindowVisible (qui doit utiliser tout simplement cet api), il faudrait pouvoir tester.

 

Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.013 s
www.mnapoli.fr