LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:46:56
此句求解
什么是回调函数啊

这个问题要从windows的运行机制说起了

windows是以消息为基础,事件为驱动而运行的
也就是说,一个事件发生后,windows会产生一个消息,传递给指定的窗口进行处理,既然这样,必须有借口给系统来调用,这个LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM)中第1个参数,是消息要传递的窗口,参数2是消息的id(也就是这是个什么样的消息,比如鼠标左键按下对应的消息是WM_LBUTTONDOWN),参数3和参数4是消息的具体内容

回调函数

回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。