Freigeben über


Windows.Add-Methode (Visio)

Fügt der Windows-Auflistung ein neues Window-Objekt hinzu.

Syntax

Ausdruck. Add (bstrCaption, nFlags, nType, nLeft, nTop, nWidth, nHeight, bstrMergeID, bstrMergeClass, nMergePosition)

Ausdruck Eine Variable, die ein Windows-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
bstrCaption Optional Variant Der Titel des Fensters, der Standard ist Unbenannt.
nFlags Optional Variant Der anfängliche Fensterstatus. Kann eine beliebige Kombination von VisWindowStates-Konstanten enthalten, die in der Visio-Typbibliothek deklariert sind. default variiert je nach nType.
nType Optional Variant Der Typ des neuen Fensters. Dies kann eine beliebige der in der Visio-Typbibliothek deklarierten VisWinTypes-Konstanten sein. Der Standard ist visStencilAddon für Application.Windows, der Standard ist visAnchorBarAddon für Window.Windows
nLeft Optional Variant Die Position der linken Fensterseite.
nTop Optional Variant Die Position der oberen Fensterseite.
nWidth Optional Variant Breite des Clientbereichs des Fensters.
nHeight Optional Variant Höhe des Clientbereichs des Fensters.
bstrMergeID Optional Variant Zusammenführungs-ID des Fensters.
bstrMergeClass Optional Variant Zusammenführungsklasse des Fensters.
nMergePosition Optional Variant Zusammenführungsposition des Fensters.

Rückgabewert

Fenster

Hinweise

Verwenden Sie diese Methode, um ein leeres übergeordnetes Rahmenfenster im Visio-Fensterbereich zu erstellen, das Sie mit untergeordneten Fenstern auffüllen können. Sie müssen sich im Visio-Prozessbereich befinden (z. B. in einem DLL- oder VSL-basierten Add-On), um das von dieser Methode zurückgegebene Window-Objekt als übergeordnetes Fenster Ihrer Fenster zu verwenden.

Verwenden Sie den von der WindowHandle32-Eigenschaft zurückgegebenen Wert als HWND zur Verwendung als übergeordnetes Fenster Ihrer Fenster.

Beispiel

Das folgende Makro zeigt, wie sie die Add-Methode verwenden, um der Windows-Auflistung ein Window-Objekt hinzuzufügen. Mit dem Makro wird ein neues, leeres, übergeordnetes Rahmenfenster erstellt, das unten mit dem Zeichnungsfenster verankert ist. Dann wird das neue, übergeordnete Rahmenfenster mit einem untergeordneten Fenster aufgefüllt, in diesem Fall mit einem Formular, sodass das neue Fenster nicht leer angezeigt wird.

Führen Sie dem VBA-Projekt (Microsoft Visual Basic für Applikationen) frmMain ein Formular hinzu, und fügen Sie dann dem Formular ein Textfeld-Steuerelement mit dem Namen txtForm hinzu.

Die Funktionen SetParent, FindWindow und SetWindowLongLib stammen aus der Windows-API. Sie sind erforderlich, um das Formular dem neuen Fenster hinzuzufügen.

Fügen Sie dem Formularmodul den folgenden Code hinzu, um die Größe des Textfelds zu ändern, wenn die Größe des Formulars geändert wird:

Private Sub UserForm_Resize() 
 txtForm.Width = txtForm.Parent.Width - 10 
 txtForm.Height = txtForm.Parent.Height - 10 
End Sub

Fügen Sie dann dem Dokumentprojekt den folgenden Code hinzu:

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.