用ATL的dll写过active控件的朋友进来,问个问题我用ATL的dll写了一个active控件,添加了3个自定义属性,但是其中两个无法正常工作,现象是这样的,(我在vb里调用此控件)在设计时,可以在vb的属性窗口里修改它的这3个属性,并且也正常,但是当运行后,其中的两个属性又复原成原来的默认值了,当我冲运行返回到设计状态,刚才的这两个属性的数值显示的是默认的,3个中只有一个是正常的,我修改后一直保持修改后的数值,请问这是为什么,因为我3个属性是同样设置的,引该不存在这样的问题啊,接着我做了一个试验,另外建一个工程放2个属性,同样,还是只有一个属性能工作正常,因此我估计是只能保持一个属性的值(这个理由好像不通,但是实在没别的办法可以解释)我的这个例子是按照《com与com+入门与提高》的第四章做的,在原来的基础上有过改动,改装成一个滤波器效果的控件,请知道解决办法的朋友帮忙回答一下

解决方案 »

  1.   

    已经解决了自己粗心,但是还有个问题,我如果设置了属性的类型为颜色,怎样是让控件在vb里出来的是选择颜色列表而不是一个数字让开发人员填写?,包括bool类是以下拉菜单TRUE false形式出现,还有其他一些特定的属性比如是10种风格,怎么做,谢谢
      

  2.   

    颜色是用OLE_COLOR类型
    BOOL使用VARIANT_BOOL(这个昨天刚用了100分问来的,所以你怎么也得给我几分啊。呵呵)