js獲取回調(diào)函數(shù)返回值 sendmessage與postmessage有什么區(qū)別?
sendmessage與postmessage有什么區(qū)別?事實(shí)上,你可以通過(guò)搜索互聯(lián)網(wǎng)找到很多答案!在線答案不能讓你滿意嗎?你希望我們讓你明白嗎?讓我告訴你我的理解。希望你能理解。1. SendMes
sendmessage與postmessage有什么區(qū)別?
事實(shí)上,你可以通過(guò)搜索互聯(lián)網(wǎng)找到很多答案!在線答案不能讓你滿意嗎?你希望我們讓你明白嗎?讓我告訴你我的理解。希望你能理解。
1. SendMessage您可以將其理解為調(diào)用window過(guò)程函數(shù)。Lresult回調(diào)WindowProc(hWnd,hWnd,uint message,wParam wParam,lParam lParam)很容易理解!把它們等同起來(lái)。SendMessage調(diào)用WindowProc,SendMessage的返回值就是WindowProc的返回值。2.郵件比較麻煩。PostMessage之后,系統(tǒng)會(huì)將消息放入程序的消息隊(duì)列中。然后消息循環(huán)(通常在Win32程序中看到)while(GetMessage(.){..DispatchMessage(…);}GetMessage將獲得此消息。(對(duì)于許多初學(xué)者來(lái)說(shuō),不應(yīng)該理解這個(gè)GetMessage,因?yàn)樗c我們通常的程序代碼執(zhí)行思想有很大的不同。GetMessage有時(shí)會(huì)被阻塞,程序就停在那里。什么時(shí)候叫,誰(shuí)叫?--其實(shí),這都是制度問(wèn)題。當(dāng)系統(tǒng)發(fā)現(xiàn)程序的消息隊(duì)列中有消息時(shí),它會(huì)讓程序調(diào)用GetMessage取出消息,while循環(huán)將繼續(xù)執(zhí)行。當(dāng)涉及到dispatchmessage時(shí),它可以等效于調(diào)用windowprocedure函數(shù)WindowProc。其思想是:PostMessage=消息進(jìn)入消息隊(duì)列-GetMessage取出消息-程序執(zhí)行dispatchmessage-dispatchmessage相當(dāng)于調(diào)用window procedure函數(shù),所以這兩個(gè)函數(shù)最終都會(huì)調(diào)用window procedure函數(shù),但是調(diào)用PostMessage之前有一些“曲折”的步驟。