关于编程Visio Viewer

Visio Viewer是一个 ActiveX 控件,可用于打开、查看或打印 Visio 绘图,即使没有 Visio 也是如此。 但是,不能在 Visio Viewer 中编辑、保存或创建新的 Visio 绘图。 为此,你需要 Visio。

Visio Viewer 提供了一个应用程序编程接口 (API),使解决方案开发人员可以执行多种任务,包括:

  • 加载和卸载 Visio 绘图。
  • 选择形状。
  • 跟踪超链接。
  • 向用户显示各种 Visio Viewer 对话框。
  • 自定义 Visio Viewer 窗口的大小和位置。
  • 通过更改前景和背景颜色,以及显示或隐藏网格和滚动条来自定义用户界面。
  • 控制绘图中各个图层的颜色和透明度。
  • 控制审阅者标记(注释)的的颜色和可见性。
  • 通过添加或移除按钮来自定义工具栏。
  • 在 Visio Viewer 界面中响应用户操作。

在 Visual Basic 6.0 中对 Visio Viewer 进行编程

使用 Visual Basic 6.0 在各种容器中实例化Visio Viewer控件, (例如 Windows 窗体) 。 在此之前,您必须获取对 Visio Viewer API 的引用。

执行下列步骤,获取 Visual Basic 6.0 项目中对 Visio Viewer API 的引用。

获取 Visual Basic 6.0 项目中对 Visio Viewer API 的引用

  1. 打开 Visual Basic 6.0。 在 Windows Vista 或 Windows 7 中,右键单击程序快捷方式,然后选择“以管理员身份运行

  2. 在 Visual Basic 6.0 中,打开一个新的“标准 EXE”项目。

  3. 在项目中,右键单击“工具箱”,选择“组件”,选择“Microsoft Visio Viewer 14.0 类型库”,然后选择“确定”。

  4. 在编译代码之前,在“ 项目 ”菜单上,选择“[项目名称] 属性”。

  5. 在“Make”选项卡上,确认“删除有关未使用的 ActiveX 控件的信息”未选中。

以下代码显示在 Visual Basic 6.0 中如何在窗体中实例化 Visio Viewer。 它将创建一个 Visio Viewer 控件,显示“属性和设置”对话框,在窗体内设置控件的位置、大小和可见性,并将名为“MyFile.vsd”的文档加载到控件中。

将以下代码添加到创建的项目中。

Dim Viewer1 As VisioViewerCtl.Viewer

Private Sub Form_Load()
    
    Set Viewer1 = Form1.Controls.Add("VisioViewer.Viewer", "Viewer1", Form1)

    Viewer1.Visible = True
    Viewer1.Left = 200
    Viewer1.SRC = "C:\Users\<variable>username</variable>\Documents\MyFile.vsd"

    Viewer1.Height = 5000
    Viewer1.Width = 5000
    Viewer1.DisplayPropertyDialog

End Sub

HTML 网页上的编程Visio Viewer

使用 Visio Viewer 控件,通过在页面的源代码中手动插入标记和参数,将 Visio 绘图嵌入网页中。 若要编写源代码,可以使用文本编辑器(如记事本)或任何其他创建网页的应用程序,例如 Microsoft Expression Web 3 或 SharePoint Designer。

您可以使用 PARAM 标记设置 Visio Viewer 的任何属性,以设置 Visio Viewer 的 Src 属性,如以下示例代码中所示。

请记住,因为 Visio Viewer 是一种 ActiveX 控件,其行为受 Internet Explorer 安全设置影响。

以下代码演示如何在网页上的 Visio Viewer 控件中打开 Visio 绘图文件。 它会设置页面上 Visio Viewer 控件的高度和宽度,并将源文档加载到控件中。

在文本编辑器中将代码复制到一个文件中,并将生成的文档另存为 HTM 文件。 Src 参数引用的 Visio 文档“SalesData.vsd”应位于与此 HTM 文件相同的文件夹中。

<html>
<OBJECT id="DrawingControl1"
    height=400 
    width=600
    classid="clsid:279D6C9A-652E-4833-BEFC-312CA8887857" VIEWASTEXT>
<PARAM NAME="Src" VALUE="SalesData.vsd">
</OBJECT>
</html>

在托管代码中对 Visio Viewer 进行编程

例如,使用托管代码在各种容器(例如 Windows 窗体)中实例化Visio Viewer控件。 在此之前,您必须获取对 Visio Viewer API 的引用。

执行下列步骤,获取 Visual Studio 2008 项目中对 Visio Viewer API 的引用。

获取 Visual Studio 项目中对 Visio Viewer API 的引用

  1. “开始 ”菜单上,指向“ 所有程序”,选择“ 附件”,然后选择 “命令提示符” 以打开“命令提示符”窗口。

  2. 在“命令提示符”窗口中,导航到“程序文件”文件夹的“Microsoft Office/Office 14”子文件夹。

  3. 将文件 VViewer.dll 复制到您有权写入新文件的文件夹位置(例如,您的用户文件夹)。

  4. 关闭“命令提示符”窗口,然后打开 Visual Studio 2008 命令提示符窗口。 (在“开始”菜单上,指向“所有程序”,选择“Microsoft Visual Studio 2008”,选择“Visual Studio Tools”,然后选择“Visual Studio 2008 命令提示符) ”。

  5. 在 Visual Studio 2008 命令提示符窗口中,导航到您将 Visio Viewer DLL 文件复制到其中的文件夹。

  6. 在该文件夹中,键入 AxImp.exe vviewer.dll 以生成多个文件,包括AxVisioViewer.dll。

  7. 在 Visual Studio 2008 中,打开一个新的 Windows 窗体应用程序项目。

  8. 在项目中的“ 项目 ”菜单上,选择“ 添加引用”,然后选择“ 浏览”。

  9. 浏览到创建AxVisioViewer.dll文件的文件夹,在列表中选择该文件,然后选择 “确定”。

在您的 Visual Studio 项目中,在 Form1.cs 文件中,添加以下代码以对 Visio Viewer 控件进行实例化,设置部分属性并将测试文件加载到控件中。 此代码假定“文档”文件夹中有一个名为 Test.vsd 的 Visio 文件,位于所示路径处。 相应地修改为您的计算机的路径和文件名。

<code language="CS" type="developer">public partial class Form1 : Form
    {
        private AxVisioViewer.AxViewer viewer;

        /// &lt;summary&gt;
        /// The Visio Viewer OM
        /// &lt;/summary&gt;
        public AxVisioViewer.AxViewer Viewer
        {
            get
            {
                return this.viewer;
            }
        }

        public Form1()
        {
            this.InitializeComponent();
            this.Resize += new EventHandler(this.UpdateSize);
            this.viewer = new AxVisioViewer.AxViewer();
            this.Controls.Add(this.viewer);
            this.viewer.CreateControl();

            this.viewer.Location = new Point(0, 0);
            this.UpdateSize(null, null);
         
        }

        public void UpdateSize(object obj, EventArgs ea)
        {
            this.viewer.ClientSize = new Size(this.ClientSize.Width - 150, this.ClientSize.Height - 150);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.viewer.Load("C:\\users\\username\\documents\\viewer\\test.vsd");

        }        

    }
</code>

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。