如题。
我把它定义成类的成员函数
BOOL CALLBACK CBackDlg::EnumChildFunc(HWND hwnd, LPARAM lParam)
{
return TRUE;
}然后在按钮事件处理中调用
LPARAM lParam;
::EnumChildWindows(h, EnumChildFunc, lParam);结果出现下面的错误:
error C2664: 'EnumChildWindows' : cannot convert parameter 2 from 'int (struct HWND__ *,long)' to 'int (__stdcall *)(struct HWND__ *,long)'
请问是什么原因,该怎么做呢?谢谢

解决方案 »

  1.   

    ::EnumChildWindows(h, EnumChildFunc, lParam);
    函数中的h是在前面得到的,我没贴出来
      

  2.   

    CALLBACK好象是给系统调用的吧
    用static试试
    不知道
      

  3.   

    在类中定义回调函数只能定义成static形式
      

  4.   


    http://community.csdn.net/Expert/topic/2757/2757797.xml?temp=.4784357
    如用BCB可用__closure 关键字,VC不支持,只能用全局或静态的
      

  5.   

    回调函数应该定义成全局函数,
    如果要把回调函数定义为成员函数,则必须是静态的.并且在调用时要这样调用
    ::EnumChildWindows(h, CBackDlg::EnumChildFunc, lParam);
      

  6.   

    谢谢大家,我用static类型不行,放到全局里了,没问题了。