我在vb中做了一个最简单的只有一个窗体的ocx,运行,能弹出ie和窗口,然后注册此ocx,想在asp用。。首先这样能雕出窗口吗?我是这样写的,set mytext=server.CreateObject("Mycon2.Mycontrol")
   mytext.form1show但是页面显示错误:Non-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control, or Property Page请问怎么回事。我能否在asp中用上面的方法把窗口调出来。我该怎么做????谢谢

解决方案 »

  1.   

    ocx要用<object id=xxx codebase="yourocx.cab..."></object>
    <script language=vbs>
    xxx.form1show
    </script>
    调用
    ocx在asp中只能在客户端被调用,如果要在服务器端调用只能使用ActiveX Dll,但是ActiveX DLL不支持Form的显示操作。
      

  2.   

    明白了。我就想做个Dll试一试
    ActiveX Dll不支持form吗
    我好象看过。从服务器下栽下来的ActiveX
    在网页中打开是一个窗口的形式,而且还有类似于treeview这样的东西
      

  3.   

    ActiveX OCX是可以做到的。但是ActiveX DLL是在服务器端运行的,而它的操作也是针对Server的,所以无法在客户端显示Form. 你说的有可能是ActiveX EXE或者是Java写的Applet
      

  4.   

    是打开连接。然后是一个窗口,窗口有个类似treeview的东西
      

  5.   

    所有在客户端显示界面的对象都需要在使用前下载到客户端。用VB编写OCX或ActiveX Exe不是一种明智的选择(安装包过于庞大),建议使用C++,Java之类的语言进行开发。
      

  6.   

    对了还想问一下。怎么给ocx他的id..呢
      

  7.   

    你是指的Object的classid还是id?
    id就是你给这个Object起的名字,可以随意,不受什么限制。
    classid是你这个ocx的唯一标识,在客户端安装这个ocx时需要这个classid,而且在调用的时候如果你指定的classid不等于你的ocx本身的classid 就会出问题。
      

  8.   

    classid
    我说的就是这个
    我在生成ocx文件之后,更本就不知道classid在哪??
      

  9.   

    你可以使用Depends来查看ClassID,或者在你最后编译成功生成OCX的时候,先Run一下,然后看一下IE中html的源代码,就能够找到这个ClassID了