VC中的Enum开头的枚举函数以及定时器函数等大量函数都定义了回调函数。本人一直搞不明白回调函数的含义,以及为何要引入回调函数,在那些情况下需要使用(或自定义)回调函数。回调函数的作用,即回调函数通常要完成那些工作。在VC中如何编写回调函数。恳请高手予以解答。谢谢!!!

解决方案 »

  1.   

    void WinMain()
    {
    EnumWindows((WNDENUMPROC)EnumWindowsProc,0);
             MessageBox(hWnd,_T("我已经执行了枚举"));
    return 1;
    }BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
    {
    WINDOWINFO WndInfo;
             MessageBox(hWnd,_T("枚举进行中"));
    GetWindowInfo(hWnd,&WndInfo);
    return TRUE;//继续
             //return FALSE;//停止枚举
    }
    基本就是这个意思,在主函数中,我代用了枚举,并且把回调函数EnumWindowsProc的地址传递给了枚举函数.
    这时,主函数继续运行.
    而EnumWindowsProc则做为多线程的方式,与主函数并行执行.
    楼主自己用一下就能发现这个意思了.回调的意义在于我命令小兵A去做一件事mission_a.任务布置完后,我继续做其他事.
    小兵A在做完mission_a之后,会用我给他的联系方法(回调函数)告诉我,这个任务搞定了,并且把必要的信息给我,让我做善后工作.