~ 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 ~
~ 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 : OuiDescription : (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...
Constante | Valeur |
Définition |
HWND_BOTTOM | 1 |
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_TOP | 0 |
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 |