activex 控件 设置一个属性.比如端口Port..然后..我放在一个对话框中..设置属性Port 为21...但是运行时..这个port没有值了...怎么才能在运行时显示这个值...就像C# 或Delphi中的edit控件 ..在设计时设置的属性..运行时..也会显示edit中的text的值...急!!

解决方案 »

  1.   

    ActiveX Control 属性持久化需要实现IPersistStorage,IPersistStream最好也同时实现IPersistPropertyBag,VB使用这个接口持续化ActiveX Control,ATL 里面已经有这就几个接口的默认实现 IPersistStorageImpl,IPersistStreamImpl,IPersistPropertyBagImplMFC 里面就更加容易,他使用的是动态数据交换来做 DoDataExchange使用DDP_Text .... 之类 来做属性和你的成员变量之间的映射
    最后使用DDP_PostProcessing 提交例如:
    在属性页中这样做
    void CXXXPropPage::DoDataExchange(CDataExchange* pDX) 

           DDP_Text(pDX, IDC_EDIT_BK_COLOR, m_clrBackGround, _T("BackGroundColor"));//关联属性 
            DDX_Text(pDX, IDC_EDIT_BK_COLOR, m_clrBackGround); //关联CEdit控件         //此句必须放在所有DDP_之后,放在其后的DDP_不能关联 
            // 
            DDP_PostProcessing(pDX); 

      

  2.   

    比较详细的解答在这里http://www.cnblogs.com/jyz/archive/2008/05/05/1183164.html