test1.ocx中有方法add,事件onreceive,test1.ocx中,用添加TypeLid中的类的方法,添加了test2.ocx控件其中包含方法add,事件OnReceive,自动生成了CDtest2.h,CDtest2Events.h两个头文件。如何调用test2.ocx中的方法和事件呢?我的方法在test1.ocx,add方法中调用
{    CDtest2 m_test; //自动生成的一个类
     static CLSID const clsid= { 0x94D41831, 0x45FD, 0x4E58, { 0xB1, 0xA7, 0xF7, 0x18, 0x8E,  0xA4, 0x56, 0xFC } };    m_test.CreateDispatch(clsid,0);    m_test.add();//调用OCX中的方法 
}
这样调用的话得不出正确结果 请大神指点。另外 在test1.ocx中的onreceive 如何映射 test2.ocx中的onreceive呢?
ACTIVEX

解决方案 »

  1.   

    不知道楼主这做法怎么不对了 我以前也遇见过 不行就改消息映射也是可以的
    在test1这边 需要调用test2的时候调用 sendmessage 函数  
    test2那边定义消息的标识(也就是宏) 然后添加消息映射表
    最后添加消息处理函数
    看来大家都放假了  祝楼主顺利
      

  2.   

    先在InitInstance中调用AfxEnableControlContainer( );方法,然后再用一般创建组件的方式创建组件
      

  3.   

    “test1.ocx中的onreceive 如何映射 test2.ocx中的onreceive”这是什么意思了?在test2.ocx中的onreceive中调用test1.ocx中的onreceive么
      

  4.   

    [quote先在InitInstance中调用AfxEnableControlContainer( );方法,然后再用一般创建组件的方式创建组件   AfxEnableControlContainer( );这句我加了。 我上面的那中静态加载的方法  为什么不行呢?  是不是少了点什么呢?
      

  5.   

    看看返回值是什么吧,或者直接用CreateControl,CoCreateInstance方式创建看看