用VC制作的MFC ActiveX控件,在VB环境下调用测试发现在属性栏设置的属性不起作用。比如该控件有一属性“MyProperty”,用VB加载后编译器右边的属性栏里,设置“MyProperty”属性为“False”然后运行VB程序,发现程序上的控件“MyProperty”属性又变成了“True”!!
而如果用代码在VB“Form_Load”里设置控件属性,则一点问题也没有!感觉控件的属性在VB的编辑状态下设置的值,在VB运行起来后就又完全还原了!是不是VC里还需要在哪写什么代码?请高手指教!!
谢谢!

解决方案 »

  1.   

    请问应该如何初始化控件属性?我是在构造函数里给“MyProperty”属性的BOOL变量设了初值。
      

  2.   

    属性页设置属性有问题,
    请参见MSDN例子:
    搜索:“Polygon Step 1: Creating the Project”
      

  3.   

    问题基本解决了MFC的属性持续机制,需要在DoPropExchange函数里写
    PX_Bool(pPX, "MyProperty", m_MyProperty);不过很奇怪,还必须把控件属性的“Implementation”设成“Get/Set methods”,如果设成“Member variable”问题依旧存在。