Méthode Windows.Add (Visio)
Ajoute un nouvel objet Window à la collection Windows .
Syntaxe
expression. Add (bstrCaption, nFlags, nType, nLeft, nTop, nWidth, nHeight, bstrMergeID, bstrMergeClass, nMergePosition)
Expression Variable qui représente un objet Windows .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
bstrCaption | Facultatif | Variant | Titre de la fenêtre ; le titre par défaut est « Sans titre ». |
nFlags | Facultatif | Variant | État de fenêtre initial. Peut contenir n’importe quelle combinaison de constantes VisWindowStates déclarées dans la bibliothèque de types Visio ; la valeur par défaut varie en fonction du nType. |
nType | Facultatif | Variant | Type de nouvelle fenêtre. Il peut s’agir de l’une des constantes VisWinTypes déclarées dans la bibliothèque de types Visio. Devient par défaut visStencilAddon pour Application.Windows ; devient par défaut visAnchorBarAddon pour Window.Windows. |
nLeft | Facultatif | Variant | Position du côté gauche de la fenêtre. |
Ntop | Facultatif | Variant | Position du bord supérieur de la fenêtre. |
nWidth | Facultatif | Variant | Largeur de la zone client de la fenêtre. |
nHeight | Facultatif | Variant | Hauteur de la zone client de la fenêtre. |
bstrMergeID | Facultatif | Variant | ID de fusion de la fenêtre. |
bstrMergeClass | Facultatif | Variant | Classe de fusion de la fenêtre. |
nMergePosition | Facultatif | Variant | Position de fusion de la fenêtre. |
Valeur renvoyée
Fenêtre
Remarques
Cette méthode permet d'obtenir une fenêtre de cadre parent vide dans l'espace de fenêtre Visio de façon à remplir des fenêtres enfant. Vous devez vous trouver dans l'espace de processus Visio (type de module complémentaire DLL ou VSL) pour utiliser l'objet Window renvoyé par cette méthode comme parent de vos fenêtres.
La valeur renvoyée par la propriété WindowHandle32 peut être utilisée comme HWND pour servir de parent à vos propres fenêtres.
Exemple
La macro suivante montre comment utiliser la méthode Add pour ajouter un objet Window à la collection Windows . Il crée une nouvelle fenêtre de cadre parent vide, ancrée au bas de la fenêtre de dessin. Ensuite, il remplit la nouvelle fenêtre de cadre parent avec une fenêtre enfant, dans ce cas un formulaire, afin que la nouvelle fenêtre n’apparaisse pas vide.
Ajoutez un formulaire à votre projet Microsoft Visual Basic (VBA) appelé frmMain et ajoutez ensuite au formulaire un contrôle Zone de texte nommé txtForm.
Les fonctions SetParent, FindWindow et SetWindowLongLib appartiennent à l'API Windows et sont nécessaires pour ajouter le formulaire à la nouvelle fenêtre.
Ajoutez le code suivant au module de formulaire afin de redimensionner la zone de texte lorsque le formulaire est redimensionné :
Private Sub UserForm_Resize()
txtForm.Width = txtForm.Parent.Width - 10
txtForm.Height = txtForm.Parent.Height - 10
End Sub
Ajoutez ensuite le code suivant au projet de document :
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_CHILD = &H40000000
Private Const WS_VISIBLE = &H10000000
Public Sub AddWindow_Example()
Dim vsoWindow As Visio.Window
Dim frmNewWindow As UserForm
Dim lngFormHandle As Long
'Add a new Anchor Bar window docked to the bottom of the Visio drawing window
Set vsoWindow = ActiveWindow.Windows.Add("My New Window", visWSVisible + visWSDockedBottom, visAnchorBarAddon, , , 300, 210)
'Create a new windows form
Set frmNewWindow = New frmMain
'Get the 32-bit handle of the new window.
lngFormHandle = FindWindow(vbNullString, "My New Window")
SetWindowLong lngFormHandle, GWL_STYLE, WS_CHILD Or WS_VISIBLE
SetParent lngFormHandle, vsoWindow.WindowHandle32
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.