Compartilhar via


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.