Compartilhar via


Sobre o uso do Visio Drawing Control em seu aplicativo

O Visio inclui um controle ActiveX, o Controle de Desenho do Visio.

Usando este controle, você pode inserir a funcionalidade completa da superfície de desenho do Visio em seus aplicativos. Você pode aproveitar a API (modelo de objeto) do Visio completo e escolher os aspectos da interface do usuário do Visio que deseja expor para integrar melhor o Visio perfeitamente à interface do usuário do seu aplicativo.

Nota Você pode inserir o Controle de Desenho do Visio no Visual Basic 6.0, Visual C++ 6.0, Visual Studio e outros contêineres de controle ActiveX. No entanto, você não pode inserir o Controle de Desenho do Visio em outro desenho do Visio, outro controle ActiveX, um formulário VBA (Visual Basic for Applications) no Visio ou uma janela de solução do Visio.

Introdução

Para instalar o Visio Drawing Control, instale o Visio. Ao instalar o Visio, é possível selecionar diversas opções de instalação, incluindo a opção Instalação Mínima. Se você quiser minimizar o tamanho do arquivo de instalação do Visio em seu computador, poderá escolher Instalação Mínima, que instala apenas os componentes mínimos necessários do Visio, incluindo o aplicativo de desenho do Visio e o Controle de Desenho do Visio. Essa opção de instalação não inclui soluções do Visio ou Ajuda do Visio (que inclui a Referência de Automação e a Referência do ShapeSheet).

Para adicionar o Controle de Desenho do Visio à caixa de ferramentas no Visual Basic 6.0, no menu Projeto , clique em Componentes e, na lista Controles , selecione Biblioteca de Tipos de Controle de Desenho do Microsoft Visio 15.0. Para disponibilizar o controle em outros ambientes de desenvolvimento, consulte a documentação que vem com seu produto de desenvolvimento.

Depois de abrir um projeto STANDARD EXE no Visual Basic e adicionar o controle à Caixa de Ferramentas, clique duas vezes no ícone do controle para adicionar uma instância do controle ao formulário em seu aplicativo. É possível adicionar várias instâncias do controle, mas elas compartilharão do mesmo objeto Application subjacente do Visio. Assim sendo, os objetos e as configurações de programação associados a uma instância do controle serão refletidos em outras instâncias. Por exemplo, a coleção Documents do objeto Application incluirá o objeto Document associado a cada instância do controle.

Abrindo um desenho Visio no controle

Por padrão, o controle abre um documento Visio em branco (desenho). Entretanto, é possível especificar, tanto no momento do desenho como na hora da execução, que o controle carregue um documento Visio existente. O documento especificado deve estar disponível para seus usuários, seja porque você o fornece junto com seu aplicativo ou porque ele existe em um compartilhamento de rede ao qual eles têm acesso, em um site de intranet ou na Web. Para especificar um documento no momento do desenho, defina a propriedade Src na janela Propriedades no projeto Visual Basic. Esse é o método preferencial. Para especificar um desenho em tempo de execução, defina a propriedade Src em seu código, geralmente no procedimento Form_Load( ). Informações adicionais sobre o uso de propriedades personalizadas do Visio Drawing Control estão disponíveis mais adiante, neste tópico, e no tópico da propriedade Src nesta Automation Reference.

Ao definir a propriedade SRC para carregar um arquivo no Visio Drawing Control, o controle abre uma cópia do arquivo, mas não mantém o arquivo original aberto para gravação. Como resultado, você não pode usar o método Document.Save para salvar alterações em um arquivo carregado no Controle de Desenho do Visio. Para salvar as alterações do arquivo, use a propriedade SRC para carregar o arquivo no Visio Drawing Control e, em seguida, defina SRC para uma cadeia de caracteres sequência vazia (""). Para salvar o arquivo modificado no disco, use o método Document.SaveAs.

Se você não definir a propriedade SRC como uma cadeia de caracteres vazia depois de carregar um desenho no Controle de Desenho do Visio, cada vez que você fechar e reabrir seu aplicativo, o desenho original será carregado e todas as modificações feitas por você ou seus usuários serão perdidas.

Por padrão, o controle não exibe a tela de inicialização do Visio e nem a guia Modelos Disponíveis na inicialização. Além disso, por padrão, o controle não exibe um painel de estêncil encaixado na inicialização, mas se você usar a propriedade Src para especificar um desenho que já exibe um painel de estêncil encaixado, esse painel ficará visível na janela Controle de Desenho do Visio. Para exibir o painel de estênceis em um desenho em branco, use o método Document.OpenStencilWindow do modelo de objetos do Visio.

Por padrão, nem menus do Visio nem barras de ferramentas do Visio são exibidos no controle (embora os menus de atalho estejam disponíveis). Porém, é possível usar as propriedades NegotiateMenus e NegotiateToolbars do controle para exibir esses itens. Informações adicionais sobre o uso de propriedades personalizadas do Visio Drawing Control são fornecidas neste tópico e na propriedade NegotiateMenus bem como nos tópicos da propriedade NegotiateToolbars nesta Automation Reference.

Nota A partir do Microsoft Visio 2010, a interface do usuário do Office Fluent (interface do usuário) substitui o sistema anterior de menus em camadas, barras de ferramentas e painéis de tarefas. Objetos VBA e membros que você usou para personalizar a interface do usuário em versões anteriores do Visio ainda estão disponíveis no Visio 2013, mas funcionam de forma diferente.

Várias instâncias do Visio Drawing Control podem ser inseridas no aplicativo. No entanto, cada instância do controle pode exibir apenas uma janela de desenho e um documento.

Acesso ao modelo de objeto do Visio

Para ter acesso ao modelo de objetos do Visio, use a propriedade Window ou Document do Visio Drawing Control. Use o código a seguir para obter um objeto Window do Visio:

Dim vsoWindow As Visio.Window
Set vsoWindow = DrawingControl1.Window

Use o código a seguir para obter um objeto Document do Visio:

Dim vsoDocument As Visio.Document
Set vsoDocument = DrawingControl1.Document

Depois de ter um desses objetos, você pode usar a propriedade Application de qualquer objeto para obter o objeto Aplicativo do Visio:

vsoWindow.Application
vsoDocument.Application

Com esses objetos, você terá acesso a todos os demais modelos de objetos do Visio. Por exemplo, se quiser modificar a interface de usuário do Visio para exibir somente a superfície de desenho branca do Visio, sem a grade, as barras de rolagem, as réguas e as guias de página, use o código a seguir no procedimento Form_Load():

Dim vsoWindow As Visio.Window
Set vsoWindow = DrawingControl1.Window
vsoWindow.ShowGrid = False
vsoWindow.ShowPageTabs = False
vsoWindow.ShowRulers = False
vsoWindow.ShowScrollBars = False

Os eventos do Visio, inclusive os eventos de teclado e mouse, estão disponíveis diretamente como membros do objeto DrawingControl.

Assim que tiver acesso ao modelo objeto do Visio, você poderá usar todos os objetos, métodos, propriedades e eventos padrão do modelo para automatizar e personalizar o controle em seu programa. Para obter mais informações sobre o uso de objetos e membros do modelo de objeto do Visio, consulte o tópico do objeto ou do membro específico nesta Automation Reference.

Por ter sido projetado para ser incorporado em outro aplicativo, o Visio Drawing control não expõe o Editor do Visual Basic no Visio. Portanto, as macros do VBA (Visual Basic for Applications) em um desenho Visio existente aberto no controle não serão executadas.

Além disso, o Visio Drawing Control não exibe o Visio ShapeSheet na interface de usuário. Porém, é possível usar a opção Automation para obter e definir valores e fórmulas nas células da ShapeSheet.

Usando as propriedades personalizadas do Visio Drawing Control

A tabela a seguir descreve as propriedades personalizadas expostas pelo Visio Drawing Control.

Propriedade Descrição
Document Somente leitura. Retorna o objeto Visio Document associado à instância do Controle de Desenho do Visio.
HostID Leitura/gravação. Cadeia de caracteres. Retorna ou define o GUID ou qualquer outra cadeia atribuída à chave de registro que identifica o aplicativo de contêiner host (seu programa executável). O padrão é uma cadeia de caracteres vazia.
NegotiateMenus Leitura/gravação. Boolean. Especifica se o controle pode mesclar menus com os do aplicativo de contêiner do host. O padrão é False.
NegotiateToolbars Leitura/gravação. Boolean. Especifica se o controle pode mesclar barras de ferramentas com as do aplicativo de contêiner do host. O padrão é False.
PageSizingBehavior Leitura/gravação. Tipo enumerado VisPageSizingBehavior. Especifica como as paginas são dimensionadas e como as formas são dimensionadas e posicionadas quando desenhos Visio existentes são carregados em instâncias do controle.
Src Leitura/gravação. Cadeia de caracteres. Especifica o nome e o caminho para o arquivo do desenho Visio existente que estiver carregado em uma instância do controle no momento da execução. O padrão é uma cadeia de caracteres vazia.
Janela Somente leitura. Retorna o objeto Janela do Visio associado à instância do Controle de Desenho do Visio. A propriedade Window fica acessível somente quando o controle estiver ativo.

Para obter mais informações sobre qualquer uma dessas propriedades personalizadas e exibir exemplos de código que mostram como usá-las, consulte os tópicos específicos associados a essas propriedades nesta Referência de Automação.

Usando eventos de teclado e de mouse com o Visio Drawing Control

A partir do Visio 2003, novos eventos de teclado e mouse adicionados ao modelo de objeto visio dão ao seu programa a capacidade de responder à entrada de teclado e mouse do usuário no controle. Por exemplo, é possível ouvir cliques de mouse de formas específicas e gravar códigos para manuseá-los. (Para obter mais informações sobre como usar esses eventos para realizar as ações em seu aplicativo host, consulte a próxima seção neste tópico.)

Os seguintes eventos estão disponíveis:

  • KeyDown

  • KeyPress

  • KeyUp

  • MouseDown

  • MouseMove

  • MouseUp

Esses eventos são similares aos eventos do Visual Basic que têm os mesmos nomes, porém eles aceitam argumentos diferentes. Para exibir a sintaxe e para obter informações adicionais sobre esses eventos, confira os tópicos específicos associados a eles nesta Referência de Automação. Para obter mais informações sobre os eventos do Visual Basic, consulte o tópico Ajuda do Visual Basic.

Integrando o Visio Drawing Control na interface de usuário de seu aplicativo

Use eventos ou alterações de status no aplicativo host para modificar um desenho no Controle de Desenho do Visio. Além disso, os eventos no Visio Drawing Control podem ser usados para executar ações ou alterações em seu aplicativo host. Por exemplo, é possível usar eventos de mouse ou de teclado no Visio Drawing Control para exibir elementos da interface de usuário como formulários e caixas de mensagens em seu aplicativo host. O código a seguir mostra como tratar um evento MouseDown (um clique do mouse) no Visio Drawing Control para exibir uma caixa de mensagens em seu aplicativo Visual Basic 6.0 .

Private Sub DrawingControl1_MouseDown(ByVal Button As Long, ByVal KeyButtonState As Long, ByVal x As Double, ByVal y As Double, CancelDefault As Boolean)
 
  MsgBox "You have clicked the mouse.", , "Drawing Control Event"
 
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.