Acerca de la utilización del control de dibujo de Visio en la aplicación

Visio incluye un control ActiveX, el control de dibujo de Visio.

Mediante este control podrá incrustar toda la funcionalidad de la superficie de dibujo de Visio en las aplicaciones. Puede aprovechar el modelo de objetos de Visio (API) completo y elegir los aspectos de la interfaz de usuario de Visio que desea exponer para integrar Visio sin problemas en la interfaz de usuario de la aplicación.

Nota Puede insertar el control de dibujo de Visio en Visual Basic 6.0, Visual C++ 6.0, Visual Studio y otros contenedores de controles ActiveX. Sin embargo, no se puede insertar el control de dibujo de Visio en otro dibujo de Visio, otro control ActiveX, un formulario de Visual Basic para Aplicaciones (VBA) en Visio o una ventana de solución de Visio.

Introducción

Para instalar el control de dibujo de Visio, instale Visio. Al instalarlo, puede elegir entre varias opciones de instalación, incluida la opción Instalación mínima. Si desea minimizar el tamaño del archivo de instalación de Visio en el equipo, puede elegir Instalación mínima, que instala solo los componentes mínimos necesarios de Visio, incluida la aplicación de dibujo de Visio y el Control de dibujo de Visio. Esta opción de instalación no incluye soluciones de Visio ni ayuda de Visio (que incluye la referencia de Automation y la referencia de ShapeSheet).

Para agregar el control de dibujo de Visio al cuadro de herramientas de Visual Basic 6.0, en el menú Proyecto , haga clic en Componentesy, en la lista Controles , seleccione Biblioteca de tipos de control de dibujo de Microsoft Visio 15.0. Para que el control esté disponible en otros entornos de desarrollo, consulte la documentación que incluye el producto de desarrollo.

Una vez que haya abierto un proyecto EXE estándar en Visual Basic y agregado el control al cuadro de herramientas, haga doble clic en el icono del control para agregar una instancia del control al formulario de la aplicación. Puede agregar varias instancias del control, pero estas instancias compartirán el mismo objeto Application subyacente de Visio. Por consiguiente, los objetos y la configuración de programación asociados con una instancia del control se reflejarán en las demás instancias. Por ejemplo, la colección Documents del objeto Application incluirá el objeto Document asociado con cada instancia del control.

Abrir un dibujo de Visio en el control

De manera predeterminada, el control abre un documento en blanco de Visio (dibujo). Sin embargo, puede especificar, bien en tiempo de diseño o bien en tiempo de ejecución, que el control cargue un documento existente de Visio. El documento que especifique debe estar disponible para los usuarios, ya sea porque lo proporciona junto con la aplicación o porque existe en un recurso compartido de red al que tienen acceso, en un sitio de intranet o en la Web. Para especificar un documento en tiempo de diseño, establezca la propiedad Src de la ventana Propiedadesdel proyecto de Visual Basic. Éste es el método preferido. Para especificar un dibujo en tiempo de ejecución, establezca la propiedad Src en el código, normalmente en el procedimiento Form_Load(). Se proporciona más información sobre la utilización de las propiedades personalizadas del control de dibujo de Visio más adelante en este tema y en el tema de la propiedad Src de esta Referencia de automatización.

Cuando se establece la propiedad SRC para que cargue un archivo en el control de dibujo de Visio, este control abre una copia del archivo, pero no mantiene abierto para escritura el archivo original. Como resultado, no puede usar el método Document.Save para guardar los cambios en un archivo cargado en el control de dibujo de Visio. Para guardar los cambios en un archivo, en primer lugar utilice la propiedad SRC para cargar dicho archivo en el control y, a continuación, establezca SRC como una cadena vacía (""). Para guardar el archivo modificado en el disco, utilice el método Document.SaveAs.

Si no establece la propiedad SRC en una cadena vacía después de cargar un dibujo en el Control de dibujo de Visio, cada vez que cierre y vuelva a abrir la aplicación, se cargará el dibujo original y se perderán las modificaciones que haya realizado usted o los usuarios.

De manera predeterminada, el control no muestra la pantalla de inicio de Visio ni la ficha Plantillas disponibles en el inicio. Además, de forma predeterminada, el control no muestra un panel de galería de símbolos acoplado en el inicio, pero si usa la propiedad Src para especificar un dibujo que ya muestra un panel de galería de símbolos acoplada, ese panel estará visible en la ventana Control de dibujo de Visio. Para mostrar el panel de galerías de símbolos en un dibujo en blanco, use el método Document.OpenStencilWindow del modelo de objetos de Visio.

De forma predeterminada, ni los menús de Visio ni las barras de herramientas de Visio se muestran en el control (aunque los menús contextuales están disponibles). No obstante, puede utilizar las propiedades NegotiateMenus y NegotiateToolbars del control para mostrar estos elementos. Se proporciona más información sobre la utilización de las propiedades personalizadas del control de dibujo de Visio más adelante en este tema y en los temas de las propiedades NegotiateMenus y NegotiateToolbars de esta Referencia de automatización.

Nota A partir de Microsoft Visio 2010, la interfaz de usuario (UI) de Office Fluent reemplaza el sistema anterior de menús, barras de herramientas y paneles de tareas por capas. Los objetos y miembros de VBA que usó para personalizar la interfaz de usuario en versiones anteriores de Visio siguen estando disponibles en Visio 2013, pero funcionan de forma diferente.

Se pueden insertar varias instancias del control de dibujo de Visio en la aplicación. Sin embargo, cada instancia del control solo puede mostrar una ventana de dibujo y un documento.

Obtener acceso al modelo de objetos de Visio

Para obtener acceso al modelo de objetos de Visio, use la propiedad Window o Document del control de dibujo de Visio. Use el código siguiente para obtener un objeto Window de Visio:

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

Use el código siguiente para obtener un objeto Document de Visio:

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

Una vez que tenga cualquiera de estos objetos, puede usar la propiedad Application de cualquiera de los objetos para obtener el objeto Application de Visio:

vsoWindow.Application
vsoDocument.Application

Con estos objetos tendrá acceso al modelo de objetos de Visio. Por ejemplo, si desea modificar la interfaz de usuario de Visio para mostrar solamente la superficie de dibujo de Visio en blanco, sin cuadrícula, barras de desplazamiento, reglas ni fichas de página, puede usar el código siguiente en el procedimiento Form_Load():

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

Los eventos de Visio, incluidos los eventos de teclado y de mouse están disponibles directamente como miembros del objeto DrawingControl.

Una vez que obtenga acceso al modelo de objetos de Visio, podrá utilizar todos los objetos, métodos, propiedades y eventos estándar del modelo para automatizar y personalizar el control en su programa. Para obtener más información sobre la utilización de objetos y miembros del modelo de objetos de Visio, vea el tema sobre el objeto o miembro específico en esta Referencia de automatización.

Como está pensado para ser incrustado en otra aplicación, el control de dibujo de Visio no expone el Editor de Visual Basic en Visio. Por consiguiente, no se ejecutarán las macro de Visual Basic para Aplicaciones (VBA) de un dibujo existente de Visio abierto en el control.

Además, el control de dibujo de Visio Drawing Control no expone tampoco la hoja de cálculo ShapeSheet de Visio en la interfaz del usuario. Sin embargo, puede utilizar la automatización para obtener y establecer valores y fórmulas en las celdas de ShapeSheet.

Utilización de las propiedades personalizadas del control de dibujo de Visio

En la tabla siguiente se describen las propiedades personalizadas que expone el control de dibujo de Visio.

Propiedad Descripción
Document Solo lectura. Devuelve el objeto Document de Visio asociado a la instancia del control de dibujo de Visio.
HostID Lectura y escritura. Cadena. Devuelve o establece el GUID u otra cadena asociada a la clave del Registro que identifica la aplicación contenedora host (el programa ejecutable). El valor predeterminado es una cadena vacía.
NegotiateMenus Lectura y escritura. Boolean. Especifica si el control puede combinar los menús con los de la aplicación contenedora host. El valor predeterminado es False.
NegotiateToolbars Lectura y escritura. Boolean. Especifica si el control puede combinar barras de herramientas con las de la aplicación contenedora host. El valor predeterminado es Falso.
PageSizingBehavior Lectura y escritura. Tipo enumerado VisPageSizingBehavior. Especifica cómo se ajusta el tamaño de las páginas y cómo se colocan las formas y se ajusta su tamaño cuando se cargan dibujos existentes de Visio en instancias del control.
Src Lectura y escritura. Cadena. Especifica la ruta de acceso y el nombre de archivo de un dibujo existente de Visio que se carga en una instancia del control en tiempo de ejecución. El valor predeterminado es una cadena vacía.
Window Solo lectura. Devuelve el objeto Window de Visio asociado a la instancia del control de dibujo de Visio. La propiedad Window es accesible sólo cuando el control esta activo localmente.

Para obtener más información sobre cualquiera de estas propiedades personalizadas y ver ejemplos de código que muestran cómo usarlas, consulte los temas específicos asociados a estas propiedades en esta referencia de Automation.

Utilización de los eventos de teclado y mouse con el control de dibujo de Visio

A partir de Visio 2003, los nuevos eventos de teclado y mouse agregados al modelo de objetos de Visio proporcionan al programa la capacidad de responder a la entrada del teclado y del mouse del usuario en el control. Por ejemplo, puede escuchar los clics del mouse en formas específicas del control y escribir código para controlarlas. (Para obtener más información sobre cómo usar estos eventos para impulsar acciones en la aplicación host, consulte la sección siguiente de este tema).

Están disponibles los siguientes eventos nuevos:

  • KeyDown

  • KeyPress

  • KeyUp

  • MouseDown

  • MouseMove

  • MouseUp

Estos eventos son similares a los eventos de Visual Basic que tienen los mismos nombres, aunque adoptan argumentos diferentes. Para ver la sintaxis y obtener información adicional sobre estos eventos, consulte los temas específicos asociados a ellos en esta referencia de Automation. Para obtener más información sobre los eventos de Visual Basic, vea la Ayuda de Visual Basic.

Integrar el control de dibujo de Visio en la interfaz de usuario de la aplicación

Use eventos o cambios de estado en la aplicación host para modificar un dibujo en el Control de dibujo de Visio. Además, puede usar los eventos del control de dibujo de Visio para controlar las acciones o los cambios de la aplicación host. Por ejemplo, puede usar los eventos de teclado o mouse del control de dibujo de Visio para mostrar elementos de la interfaz de usuario, como formularios o cuadros de mensajes, en la aplicación host. El código siguiente muestra cómo controlar un evento MouseDown (un clic del mouse) en el control de dibujo de Visio para mostrar un cuadro de mensaje en la aplicación de 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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.