求助下:会VC的帮下忙
我用MFC编写一个ActiveX.我在这个ActiveX内动态创建另外一个控件ActiveX假设是控件A。
请问我如何获取控件A的事件??或者对控件A的事件做映射??例如
  1、用MFC   ActiveX   ControlWizard创建工程test;   
  2、在BOOL   CTestApp::InitInstance()中第一行添加函数:   
  AfxEnableControlContainer();   
  3、在类CTestCtrl中添加Microsoft   Media   Player   Control   (你已经导入的类名)   
    
  类变量(对象)m_wmp;   
  4、为类CtestCtrl添加OnCreate消息;   
  5、在CtestCtrl::OnCreate()中创建Microsoft   Media   Player   Control对象   
        m_wmp.Create();   
  6、为类CTestCtrl定制方法--给VBScript   or   JScript   使用;   
但是不会如何获取m_wmp的事件。

解决方案 »

  1.   

    对了 ACTIVEX 使用的是MFC框架
      

  2.   

    控件内部响应控件消息没有试过,    不过应用程序里面响应倒是做过。(个人感觉方法是一样的   你可以试下)。//在.h里声明事件响应函数。
    afx_msg void OnConnectEventElabel(long ID, LPCTSTR IPaddr, long IPport, long Event);
    //在.cpp里定义事件接口和事件响应函数就可以了。
    BEGIN_EVENTSINK_MAP(CTestELabelDlg, CDialog)
        //{{AFX_EVENTSINK_MAP(CTestELabelDlg)
    //}}AFX_EVENTSINK_MAP
    ON_EVENT_RANGE(CTestELabelDlg, ID_ELABEL, ID_ELABEL + 100, 1 /* ConnectEvent */, OnConnectEventElabel, VTS_I4 VTS_BSTR VTS_I4 VTS_I4)
    END_EVENTSINK_MAP()void CTestELabelDlg::OnConnectEventElabel(long ID, LPCTSTR IPaddr, long IPport, long Event) 
    {

      

  3.   

    非常感谢你的关注。
    这个操作我以前就测试过了方法是行不通的。
    BEGIN_EVENTSINK_MAP() 在里面根本就无法声明的。
    声明会报错的
      

  4.   

    最新消息:
    我尝试了在ACTIVE中新增一个CDialog在CDialog做操作。
    结果依旧是出错啊。
    编译 跟初始化都没有问题。
    当调用控件A时候。就直接报错了。
      

  5.   

    现在打算转到ATL框架下做了哎多日的努力白费了
      

  6.   


    我不知道你是报什么错误!!     我今天也试了下   确实报了一个错误。  我查了下MSDN,发现还需要在类定义里添加一个DECLARE_EVENTSINK_MAP();   声明。   你加一个试试
      

  7.   

    我简单试了VC自带的控件,可以直接通过ClassWizard(类向导)来添加消息处理函数的。
    不知道楼主不能添加消息是怎么回事,Microsoft Media Player Control这个控件是自己做的控件还是VC自带的?