我添加的途径如下图:但是在activex控件中激发事件时客户端事件响应函数并没有响应。
我看vc6.0的事件里有这么一段代码:FireEvent(eventidClickOut,EVENT_PARAM(VTS_NONE));
我用VC2003生成的事件代码没有这行代码,为啥?

解决方案 »

  1.   

    没有很不方便,我都不知道参数FireEvent和
    BEGIN_EVENT_MAP(CCalandarCtrl, COleControl)
    EVENT_CUSTOM("OnDateChanged", OnDateChanged, VTS_BSTR)
    END_EVENT_MAP()
    中的参数该怎么填.
    应该有吧?也许是我们不知道怎么用向导。
      

  2.   

    客户端有Advise连接到事件吗?
      

  3.   

    我的是VS2005的,你不要在其他的类或者你图像显示的Event上点右键。
    你到你的CCalanderCtrl类上点击右键试试。
    看有没有这样的图:
    我在VS2005上通过这个方法添加了事件,只是事件的定义跟以前VC下有点不太一样了:以前VC6.0下定义的是这样的形式:
    EVENT_CUSTOM("ImgReced", FireImgReced, VTS_BOOL  VTS_BSTR  VTS_I2)
    VS2005下定义成了这个样子:
    EVENT_CUSTOM_ID("Mkey", eventidMkey, Mkey, VTS_BSTR)
    事件函数体变成了这样:
    void Mkey(LPCTSTR mSt)
    {
        FireEvent(eventidMkey, EVENT_PARAM(VTS_BSTR), mSt);
    }
    所以找不到以前习惯性的前面加Fire的函数名字了,但是大同小异啦,函数里面还是有FireEvent的。那里触发事件就在那里直接调用MKey(MykeyString);就可以了