我在VC++中写一ActiveX控件,想使其在VB中使用。目前已增加一Property为ForeColor(Get/Set)但编译后,将该控件装载到VB中,在设计模式下设定该ForeColor为RGB(255,0,0)(默认为黑色),能够在界面上看到变红了。但到运行模式,却仍为黑色,并不是我设定的红色,请问这是什么原因?

解决方案 »

  1.   

    在控件主接口中写(你的控件文件名.odl)
    [id(1),propget] OLE_COLOR ForeColor;
    [id(1),propput] OLE_COLOR ForeColor;
    然后在接口映射文件中增
    afx_msg OLE_COLOR GetForeColor();
    afx_msg void SetForeColor(OLE_COLOR nNewValue);
    在实文件中增
    OLE_COLOR 类::GetForeColor()
    {
      return RGB(10,12,12);
    }
    void SetForeColor(OLE_COLOR nNewValue)
    {
      //你的代码段
    }
      

  2.   

    你在动态数据交换中加入
    if (pPX->IsLoding())
    {
    }
    if (!pPX->IsLogin())
    {}