我自己做了一个控件,嵌入到网页中,我想在<object...><para ...></para></object>里面绑定属性,应该怎么做?我给控件定义了属性,我程序取那个值总是空值。

解决方案 »

  1.   

    <object id=DWebOffice style="left: 0px; width: 100%; top: 0px; height: 450px;" classid="clsid:05430EC0-69CA-437A-B1F9-4B78B8647BEA" viewastext codebase="http://10.70.38.10:9001/ActiveX/WebOffice.cab#version=1,0,0,3">
    <param name="_Version" value="65536">
    <param name="_ExtentX" value="6959">
    <param name="_ExtentY" value="2699">
      

  2.   

    xdljf(hunter)  
     你好,这样设置属性我是知道的,大概您没理解我的问题,我的问题是想设置
    <param name="name" value="2699"> 这么一个参数,在控件里面应该怎么写?
      

  3.   

    Make yourself understood.///<param name="name" value="2699"> 这么一个参数,在控件里面应该怎么写?What do you mean?
    You want to set attributes in Activex control or in html page?
      

  4.   

    我的意思是,我想给控件设置一个属性,能够直接在<object></object>这个里面直接绑定的,我通过MFC classwizard添加的属性,我在<object></object>里面通过<para name=.... value=...>设置的值在我的程序里面获得的总是空值。 如果我通过 对象.属性名=...的方法,可以设置这个属性值,在程序里面也可以获得。
      

  5.   

    icelight原创用param标签初始化ActiveX控件 作者icelight一。为控件CYourObject建一个属性,例如nIcelightProp。要勾选put function。二。为属性添加映射:
    BEGIN_PROP_MAP( CYourObject )
       PROP_ENTRY( "nIcelightProp", 7, CLSID_NULL )
    END_PROP_MAP()
    //PROP_ENTRY()第二个参数的值是是属性nIcelightProp的ID值,该值可在IDL文件中查到。三。为你的控件添加父类IPersistPropertyBagImpl
    class ATL_NO_VTABLE CYourObject : 
    public IPersistPropertyBagImpl<CYourObject>四。为永久化添加映射:
    BEGIN_COM_MAP(CYourObject)
    COM_INTERFACE_ENTRY(IPersistPropertyBag)
    END_COM_MAP()五。用HTML测试一下:
    <body bgcolor=#EAF2FF onLoad="Launch()">
    <object CLASSID="clsid:D4829924-60E7-43B3-9EC6-AE1DDD3C4EC3" ID="zhong">
    <param name="nLocalPort" value=67></param>
    </object>
    <script>
    function Launch()
    {
      alert(zhong.nIcelightProp);
    }
    </script>
      

  6.   

    更正:
    <body bgcolor=#EAF2FF onLoad="Launch()">
    <object CLASSID="clsid:D4829924-60E7-43B3-9EC6-AE1DDD3C4EC3" ID="zhong">
    <param name="nIcelightProp" value=67></param>
    </object>
    <script>
    function Launch()
    {
      alert(zhong.nIcelightProp);
    }
    </script>
      

  7.   

    在msdn找到答案,添加属性 在“类视图”中,右击库节点下面的接口,并选择“添加”,然后选择“添加属性”。此操作将启动“添加属性向导”。 
    在“添加属性向导”中,选择“Set/Get 方法”单选按钮,键入属性名(例如 EditControlText),并选择 BSTR 作为属性类型。 
    单击“完成”。 
    向 ActiveX 控件类声明 CDataPathProperty 派生类的一个成员变量。 
    CMyDataPathProperty EditControlText;
    实现 Get/Set 方法。对 Get 返回字符串。对 Set 加载属性并调用 SetModifiedFlag。 
    BSTR CDataPathCtrl::GetDataPath() 
    {
        CString strResult;
        strResult = EditControlText.GetPath();
        return strResult.AllocSysString();
    }
    void CDataPathCtrl::SetDataPath(LPCTSTR lpszNewValue) 
    {
        Load(lpszNewValue, EditControlText);
        SetModifiedFlag();
    }
    在 DoPropExchange 中,添加下行: 
    PX_DataPath(pPX, _T("DataPath"), EditControlText);
    添加下行,重写 ResetData 以通知属性重新设置其控件: 
    EditControlText.ResetData();