现在正在试验写WEB的ocx控件,用mfc activex控件向导生成基本框架后,添加一个方法SetValue(BSTR s),该方法只是简单调用AfxMessageBox弹出一个对话框出来。
可是在网页里面调用时却没有弹出对话框
<SCRIPT ID=clientEventHandlersVBS  LANGUAGE=vbscript>
<!--
Sub button1_onclick()
DOCxtest1.SetValue("sdj")
End Sub
-->
</SCRIPT><P>
<INPUT id=button1 type=button value=页面设置 name=button1 onclick=button1_onclick() >
<OBJECT id=DOcxtest1 classid=clsid:D6C20D10-3F64-4C57-88F1-0515488573E1>
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0"></OBJECT>
</P>
但是如果我使用不带参数的方法,就可以弹出对话框,为什么呢

解决方案 »

  1.   

    现在所有参数都是BSTR型的,如果只有一个参数,那么将实现里的LPCTSTR改成BSTR也能正常执行,可是如果有2个BSTR参数,那就无论怎么改也实现不了了。至于方法执行出错根本就不可能阿,这个方法就调用个对话框,还能出什么错?例如
    void CPageSetCtrl::SetValue(BSTR a,BSTR b)
    {
        AfxMessageBox("hello");
    }
    这么简单的代码都没能执行。
      

  2.   

    <SCRIPT ID=clientEventHandlersVBS  LANGUAGE=vbscript>
    <!--
    Sub button1_onclick()
    DOCxtest1.SetValue("hello","world")
    End Sub
    -->
    </SCRIPT>
    这样,结果就是根本就不执行,点了一点反应没有
    哦,应该说有反应,就是ie左下角说脚本错误
      

  3.   

    你不知道VB或者VBScript调用函数时包含两个及以上个数参数时不能带括号吗?