Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction SetWindowPos

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" ( _
                 
ByVal hwnd As Long, _
                 ByVal hWndInsertAfter As Long, _
                 ByVal x As Long, _
                 ByVal y As Long, _
                 ByVal cx As Long, _
                 ByVal cy As Long, _
                 ByVal wFlags As Long) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
(Origine : Phil - Plancon@onetelnet.fr)
Cette API permet d'afficher la fenêtre où bon vous semble sur
l'écran en exécutant une méthode du type move avec la possibilité de laisser la feuille toujours au premier plan d'affichage.
hwnd est le handle de la feuille,
hWndInsertAfter est une des contantes définies ci-dessous,
X, Y, cx et cy sont respectivement les coordonnées et les dimensions de l'image.
wFlags est une combinaison de constantes ci-dessous.

Exemple d'utilisation dans le programme Horloge, ou ci-dessous...

ConstanteValeur Définition
HWND_BOTTOM1 Place la fenêtre en dessous de toutes les autres.
HWND_NOTOPMOST-2 Place la fenêtre au dessus de toutes les fenêtres qui n'ont pas l'attribut "TOPMOST" (et en dessous de ces dernières).
HWND_TOP0 Place la fenêtre au premier niveau.
HWND_TOPMOST-1 Place la fenêtre au premier niveau, celle-ci conserve cet attribut même lorsqu'elle perd le focus.
SWP_HIDEWINDOW&H80 Cache la fenêtre.
SWP_NOACTIVATE&H10 N'active pas la fenêtre.
SWP_NOMOVE&H2 Garde la même position (les paramètres X et Y ne sont pas pris en compte).
SWP_NOSIZE&H1 Conserve les dimensions courantes (paramètres cx et cy pas pris en compte).
SWP_SHOWWINDOW&H40 Affiche la fenêtre.

Exemple d'utilisation :

' Cette fonction vous permet de créer des boîtes à outils (Toolbox).

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
       
ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
       
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


Private Const
HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Private Function PositionForm(ByVal Feuille As Form, Optional PrePlan As Boolean = True) As Long
Dim
lgConst As Long
If
PrePlan Then
   
lgConst = HWND_TOPMOST
Else
   
lgConst = HWND_NOTOPMOST
End If
PositionForm = SetWindowPos(Feuille.hwnd, lgConst, _
                Feuille.Left \ Screen.TwipsPerPixelX, _
                Feuille.Top \ Screen.TwipsPerPixelY, _
                Feuille.Width \ Screen.TwipsPerPixelX, _
                Feuille.Height \ Screen.TwipsPerPixelY, 0)
End Function

Private Sub
Form_Load()

' Pour mettre une Feuille au premier plan, il suffit alors d'ajouter le code suivant:
PositionForm Form1

' Pour qu'elle retrouve un comportement normal:
PositionForm Form1, False

End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr