Partager via


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.