用向导生成了1个简单的ActiveX控件,用类向导为控件添加了2个属性,一个是库存属性“ForeColor”,一个是自定义属性“LineWidth”。现在的问题有:
1,在VC的ActiveX控件测试容器中,可以通过属性页设置LineWidth的值,但找不到ForeColor的设置界面。库存属性不会自动添加属性页吗?2,在网页中,通过param传递参数,无论是那个属性,都没反应。
<html>
<head>
<title>ActiveX控件测试</title>
</head>
<body>
<object width="400" height="300" classid="clsid:A48C592B-6856-4C01-90B8-75B8155F5877">
<param name="ForeColor" value="red">
<param name="LineWidth" value="5">
</object>
</body>
<html>请问如何解决上述问题??IE的本地安全设置,已经改为最低

解决方案 »

  1.   

    在DoPropExchange中加入代码,实现属性的持久性(否则初始化控件时传入的属性值将被抛弃)。void CMyActiveXCtrl::DoPropExchange(CPropExchange* pPX)

       ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor)); 
       COleControl::DoPropExchange(pPX);    // TODO: Call PX_ functions for each persistent custom property.    
       PX_String(pPX,_T("ForeColor"),m_sForeColor,_T("red"));
       PX_Int(pPX,_T("LineWidth"),m_nLineWidth,5));
    }
      

  2.   

    呃 我一般都是在onload事件中给对象赋值的。
      

  3.   

    也许应该是这个
    <object ... style="color:red;">
      

  4.   

    加了PX_Long之后,参数能取到了。另外ForeColor是库存属性,应该不用加PX。在<object>之外包一个<font color="red">,把前景色问题也解决了。那最后一个问题呢?库存属性是否户自动生成属性设置页面?
      

  5.   

    --那最后一个问题呢?库存属性是否户自动生成属性设置页面?不知道,我以前用VC6做的,属性都是在IDD_PROPPAGE_XXX这个属性页上自已加的控件进行设置,也没用过库存属性。现在在.Net下连加属性的地方都找不到了。
      

  6.   

    楼上的,.net下很容易加呀,做成类的public方法就行了。我用过的。