分享

怎样在VB OLE中滚动一个内嵌的Word文档

 昵称4970112 2012-03-25


                                      

概述
在本文开始列出的Word版本的文档在VB OLE容器中激活时不支持滚动。本文的目的就是提供一个方案,能够让用户在内嵌在VB OLE容器中的Word文档在激活至编辑状态的时候能够通过按钮进行滚动。

为了能够滚动窗口,我们必须调用Word的基础方法,例如VLine。但是,如果我们在滚动条的事件中调用这个方法,代码并不能正确工作。问题的原因就是,在滚动条事件中,窗体的焦点在滚动条上,此时OLE容器是非激活的。如果你试图在滚动条事件中激活Word文档,那么OLE容器中的Word文档将会移动到文档的开始,这样我们就失去了文档中我们当前的焦点。这个问题在任何可以获得焦点的组件上都会出现。

更多的信息:为了解决这个问题,使用一些不能获取焦点的组件(例如Image组件或者spin按钮),我们可以使用一个Image组件模拟按钮,这样在点击这个“按钮”的时候,焦点还会继续保持在OLE组件上,当然了,OLE容器中的Word文档会继续保持激活状态。这样我们就可以在Image组件模放出来的按钮的点击事件中调用类似VLine这样的方法。

示例:
启动Visual Basic,默认创建一个窗体 Form1
在Form1上添加一个OLE组件(默认的名字是Ole1)
当我们在Form1上添加OLE组件的时候,就会出现一个选择对象的对话框,选择“从已有的文件创建”,然后选择一个存在的Word文档(为了实现滚动效果,这个文档的内容应该超过一页的长度)。不要选择“链接”和“显示为图标”按钮。完成之后,点击“确定”按钮,这个文档就会嵌入在OLE容器中了。

在Form1上添加一个Spin按钮(默认的名字是SpinButton1)
在spin-down事件中添加以下代码
Sub SpinButton1_SpinDown ()
         If Ole1.AppIsRunning Then
            Ole1.Object.Application.WordBasic.VLine 1
         Else
            Ole1.Action = 7 'Activate
         End If
      End Sub
      
在spin-up事件中添加以下代码:
Sub SpinButton1_SpinUp ()
         If Ole1.AppIsRunning Then
            Ole1.Object.Application.WordBasic.VLine -1
         Else
            Ole1.Action = 7 'Activate
         End If
      End Sub
     
保存这个工程,然后运行这个应用。在OLE容器上双击以让Word文档进入编辑状态。点击Spin按钮使文档滚动。

提示:
你可以修改spinbutton的“delay”属性或者设置VLine方法滚动的行数来改变Word文档滚动的速度。
其他不能获得焦点的组件有:shape, line, frame, 3D frame, 3D panel, 和label 组件.
本文应用于:
Microsoft Word 2000
Microsoft Visual Basic Learning Edition for Windows 5.0
Microsoft Visual Basic Learning Edition for Windows 6.0
Microsoft Visual Basic Professional Edition for Windows 5.0
Microsoft Visual Basic Professional Edition for Windows 6.0
Microsoft Visual Basic Enterprise Edition for Windows 5.0
Microsoft Visual Basic Enterprise Edition for Windows 6.0
Microsoft Visual Basic Standard Edition for Windows 4.0
Microsoft Visual Basic Professional Edition for Windows 4.0
Microsoft Visual Basic Enterprise Edition for Windows 4.0
Microsoft Word 97 for Windows


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多