已经存在一个类,假设为CClassA{
  void regCallBack(...)//注册回调函数
}
生成OCX BCtrl
在OCX中要使用CClassA中的注册回调函数,需先申明全局函数,现有一对话框使用这个OCX, 使用一个没有问题,使用两个ocx,如果为第一个OCX的事件,现在第一个OCX接收不到,第二个ocx接收到,查看CClassA中注册回调函数的值,发现注册的函数地址完全一样,请问OCX如何定义函数来保证注册进去的回调函数地址不同!谢谢!!!急!!!

解决方案 »

  1.   

    我不明白回调函数为什么要先申明全局函数?下面是我的一个activeX项目里用到的回调函数的使用:
    BOOL CSafeCardCtrl::SetWorkMode(short nWorkMode)
    {
       .....
       gunTimerIDEvent = ::SetTimer(NULL,NULL,20,(TIMERPROC)TimerProc);
       .....
    }VOID CALLBACK CSafeCardCtrl::TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
    {
       ...
    }