(相关资料图)
keyboardproc,keyboardproc这个很多人还不知道,现在让我们一起来看看吧!
1、给你讲过实用点的,在MFC中很多都是回调函数,都是通过事件触发的。
2、但是我们在写程序的时候也经常用到自己写的回调函数,回调函数和一般函数体一样只不过在调用的时候是给触发条件传入一个函数指针由这个函数指针指向你自己的回调函数然后由你设置的这个条件去调用你自己写的回调函数也就是你可以自己写个函数,然后在里面用一个指向函数的指针指身一个回调函数当然在这个函数被调用的时候也就会去调用你定义的回调函数了举个例给你看我们在使用键盘钩子的时候就会用到一个回调函数 // 回调函数指针typedef BOOL (CALLBACK* LPFNKEYBOARDPROC)(WPARAM, KBDLLHOOKSTRUCT*);LPFNKEYBOARDPROC g_lpfnKeyboardProc; // 键盘钩子回调函数指针// 底层键盘钩子函数LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){if (nCode >= HC_ACTION){KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;if (g_lpfnKeyboardProc(wParam, pStruct))//注意这里的g_lpfnKeyboardProc是一个函数指针。
3、指向一个函数,在我们判断这个函数指针的时候其实也就调用了我们定义的回调函数,当然这个函数的函数体没有写出来了return CallNextHookEx(g_hHook, nCode, wParam, lParam);elsereturn true;// 调用系统中的下一个钩子return CallNextHookEx(g_hHook, nCode, wParam, lParam);}void SetHook(LPFNKEYBOARDPROC lpfnKeyboardProc){g_lpfnKeyboardProc = lpfnKeyboardProc;//安装的时候传入一个函数指针g_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hInstance, NULL); //这里用到的LowLevelKeyboardProc就是一个回调函数。
4、它是在我们设置这个键盘钩子的时候被调用其函数体在上面,和我们普通函数是一样的}。
本文到此分享完毕,希望对大家有所帮助。
X 关闭
Copyright © 2015-2022 华声机械网版权所有 备案号:京ICP备2021034106号-36 联系邮箱:55 16 53 8 @qq.com