Método Windows.Add (Visio)
Adiciona um novo objeto Window à coleção Windows.
Sintaxe
expressão. Adicionar (bstrCaption, nFlags, nType, nLeft, nTop, nWidth, nHeight, bstrMergeID, bstrMergeClass, nMergePosition)
Expressão Uma variável que representa um objeto Windows .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
bstrCaption | Opcional | Variantes | O título da janela; o padrão é "Sem Título". |
Nflags | Opcional | Variantes | Estado inicial da janela. Pode conter qualquer combinação de constantes VisWindowStates declaradas na biblioteca de tipos do Visio; o padrão varia de acordo com o nType. |
Ntype | Opcional | Variantes | Tipo de nova janela. Pode ser qualquer uma das constantes visWinTypes declaradas na biblioteca de tipos do Visio. Adota como padrão visStencilAddon para Application.Windows; adota como padrão visAnchorBarAddon para Window.Windows |
nLeft | Opcional | Variantes | A posição do lado esquerdo da janela. |
Ntop | Opcional | Variantes | A posição da parte superior da janela. |
Nwidth | Opcional | Variantes | Largura da área do cliente da janela. |
Nheight | Opcional | Variantes | Altura da área do cliente da janela. |
bstrMergeID | Opcional | Variantes | Identificação de mesclagem da janela. |
bstrMergeClass | Opcional | Variantes | Classe de mesclagem da janela. |
nMergePosition | Opcional | Variantes | Posição de mesclagem da janela. |
Valor de retorno
Janela
Comentários
Use este método para obter uma janela com quadro pai vazio dentro do espaço da janela do Visio, que você pode preencher com janelas filhas. Você deve estar no espaço do processo do Visio (por exemplo, em um complemento baseado em uma DLL ou VSL) para usar o objeto Window retornado por este método como um pai de suas janelas.
Use o valor retornado pela propriedade WindowHandle32 como um HWND para usar como um pai para suas próprias janelas.
Exemplo
A macro a seguir mostra como usar o método Add para adicionar um objeto Window à coleção do Windows . Ele cria uma nova janela com quadro pai vazio encaixada na parte inferior da janela de desenho. Em seguida, preenche a nova janela de quadro pai com uma janela filha, neste caso um formulário, de forma que a nova janela não pareça vazia.
Adicione um formulário ao projeto do Microsoft Visual Basic (VBA) chamado frmMain e, em seguida adicione um controle TextBox nomeado txtForm ao formulário.
As funções SetParent, FindWindow e SetWindowLongLib são da API do Windows e são necessárias para adicionar o formulário à nova janela.
Adicione o código a seguir ao módulo do formulário para redimensionar a caixa de texto ao redimensionar o formulário:
Private Sub UserForm_Resize()
txtForm.Width = txtForm.Parent.Width - 10
txtForm.Height = txtForm.Parent.Height - 10
End Sub
Em seguida, adicione o código a seguir ao projeto do documento:
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de