?
投資 干貨 消費(fèi) 評論 學(xué)院 滾動(dòng)
風(fēng)投 科技 創(chuàng)業(yè) 業(yè)內(nèi) 要聞
keyboardproc_keyboardproc-即時(shí)焦點(diǎn)
發(fā)布日期: 2023-06-22 14:52:47 來源: 萬能網(wǎng)


(相關(guān)資料圖)

keyboardproc,keyboardproc這個(gè)很多人還不知道,現(xiàn)在讓我們一起來看看吧!

1、給你講過實(shí)用點(diǎn)的,在MFC中很多都是回調(diào)函數(shù),都是通過事件觸發(fā)的。

2、但是我們在寫程序的時(shí)候也經(jīng)常用到自己寫的回調(diào)函數(shù),回調(diào)函數(shù)和一般函數(shù)體一樣只不過在調(diào)用的時(shí)候是給觸發(fā)條件傳入一個(gè)函數(shù)指針由這個(gè)函數(shù)指針指向你自己的回調(diào)函數(shù)然后由你設(shè)置的這個(gè)條件去調(diào)用你自己寫的回調(diào)函數(shù)也就是你可以自己寫個(gè)函數(shù),然后在里面用一個(gè)指向函數(shù)的指針指身一個(gè)回調(diào)函數(shù)當(dāng)然在這個(gè)函數(shù)被調(diào)用的時(shí)候也就會(huì)去調(diào)用你定義的回調(diào)函數(shù)了舉個(gè)例給你看我們在使用鍵盤鉤子的時(shí)候就會(huì)用到一個(gè)回調(diào)函數(shù) // 回調(diào)函數(shù)指針typedef BOOL (CALLBACK* LPFNKEYBOARDPROC)(WPARAM, KBDLLHOOKSTRUCT*);LPFNKEYBOARDPROC g_lpfnKeyboardProc; // 鍵盤鉤子回調(diào)函數(shù)指針// 底層鍵盤鉤子函數(shù)LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){if (nCode >= HC_ACTION){KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;if (g_lpfnKeyboardProc(wParam, pStruct))//注意這里的g_lpfnKeyboardProc是一個(gè)函數(shù)指針。

3、指向一個(gè)函數(shù),在我們判斷這個(gè)函數(shù)指針的時(shí)候其實(shí)也就調(diào)用了我們定義的回調(diào)函數(shù),當(dāng)然這個(gè)函數(shù)的函數(shù)體沒有寫出來了return CallNextHookEx(g_hHook, nCode, wParam, lParam);elsereturn true;// 調(diào)用系統(tǒng)中的下一個(gè)鉤子return CallNextHookEx(g_hHook, nCode, wParam, lParam);}void SetHook(LPFNKEYBOARDPROC lpfnKeyboardProc){g_lpfnKeyboardProc = lpfnKeyboardProc;//安裝的時(shí)候傳入一個(gè)函數(shù)指針g_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hInstance, NULL); //這里用到的LowLevelKeyboardProc就是一個(gè)回調(diào)函數(shù)。

4、它是在我們設(shè)置這個(gè)鍵盤鉤子的時(shí)候被調(diào)用其函數(shù)體在上面,和我們普通函數(shù)是一樣的}。

本文到此分享完畢,希望對大家有所幫助。

關(guān)鍵詞:
24小時(shí)熱點(diǎn) 精彩推薦
資訊新聞
?