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.