请问,我想制作一个activex控件,要能够处理word,excel等office文档,然后在网页中调用,来做在线编辑,我刚才看了一下,在普通的exe程序中,只要放个ole对象就可以在窗体中加载word,可是在制作activex控件时,ole对象不能使用,请问,各位有什么好方法可以教教我吗?我真的是没有办法了!!!!!!!!!今天一上午都在百度上搜索,都没有找到对应的资料,多谢各位了!

解决方案 »

  1.   

    你这样是不行的。 1、使用者的操作系统上没有Office,怎么办?
         要知道Office是有版权的,你不可能给使用者下载一个Office吧!
     
     2、如果第1个问题可以解决,你只要在工程中引用对应的Office类库,或是在程序中用CreateObject创建对象,将得到的句柄的父对象设置为你的控件即可(API);
      

  2.   

    第一个问题:我的这套系统就是针对我们公司的内部网的,使用者就是我们自己的员工,所以几乎每台客户机上都安装了office,所以这个不是问题.但是我再网上看到的很多这方面的控件都是直接提供一个ocx文件,注册一下就可以了,例如:办公之星
    第二个问题:我引用了,可是在程序中确实直接打开word来处理文档,我要的是在当前窗体中打开文档,不知怎么解决?
      

  3.   

    uguess(uguess),你还在不在?在的话,请帮帮忙!
      

  4.   

    //我引用了,可是在程序中确实直接打开word来处理文档,我要的是在当前窗体中打开文档,不知怎么解决?    其实我已经告诉你了,使用API函数(SetParent),将激活的Word的句柄传入,将“父”设为你的控件即可!
      

  5.   

    我也不知道啊,只是知道确实做控件得时候不能用OLE关注
      

  6.   

    可是Createobject()返回的只是一个object对象的引用,并不是一个句柄呀?可以将返回的这个对象传给SetParent函数吗?
      

  7.   

    Office的对象创建后,本身包含1个属性就是HWND!就用它!
      

  8.   

    要得到word的句柄,可以用以下的语句:
    tWnd = FindWindow("OpusApp", vbNullString)
    twnd即为word的句柄,在VB中不怎么重视VB,其实hwnd对于windows程序来说是非常重要的
      

  9.   

    嗯,这个问题解决了,各位,你们谁可以告诉我一些关于vba的开发资料呀?或者是有关于vba的开发资料?多谢了!
      

  10.   

    要得到word的句柄,可以用以下的语句:
    tWnd = FindWindow("OpusApp", vbNullString)
    twnd即为word的句柄,在VB中不怎么重视VB,其实hwnd对于windows程序来说是非常重要的
      

  11.   

    安装了office就能找到,找vb编辑器然后打开就能找到中文帮助,再不行,找office的帮助里面也有