VC中SendMessage和PostMessage的區(qū)別
本文實(shí)例講述了VC中SendMessage和PostMessage的區(qū)別。分享給大家供大家參考。具體分析如下:
1、首先是返回值意義的區(qū)別,我們先看一下 MSDN 里的聲明:
UINT Msg,
WPARAM wParam,
LPARAM lParam );
UINT Msg,
WPARAM wParam,
LPARAM lParam);
其中 4 個(gè)參數(shù)的意義是一樣的,返回值類型不同(其實(shí)從數(shù)據(jù)上看他們一樣是一個(gè) 32 位的數(shù),只是意義不一樣),LRESULT 表示的是消息被處理后的返回值,BOOL 表示的是消息是不是 Post 成功。
2、PostMessage 是異步的,SendMessage 是同步的。
PostMessage 只把消息放入隊(duì)列,不管消息是否被處理就返回,消息可能不被處理;而 SendMessage 等待消息被處理完了之后才返回,如果消息不被處理,發(fā)送消息的線程將一直被阻塞。
3、sendmessage發(fā)送消息不經(jīng)過消息隊(duì)列,會(huì)被直接處理。但是sendmessage一直等待,知道消息被處理才返回。
4、系統(tǒng)只整理和編號(hào)系統(tǒng)消息(0 到 WM_USER 之間的消息),發(fā)送用戶消息(WM_USER 以上)到別的進(jìn)程時(shí),需要自己定義。
用 PostMessage、SendNotifyMessage、SendMessageCallback 等異步函數(shù)發(fā)送系統(tǒng)消息時(shí),參數(shù)里不可以使用指針,因?yàn)榘l(fā)送者并不等待消息的處理就返回,接受者還沒處理指針就已經(jīng)被釋放了。
5、在 Windows 2000/XP 里,每個(gè)消息隊(duì)列最多只能存放 10,000 個(gè) Post 的消息,超過的還沒被處理的將不會(huì)被處理,直接丟掉。這個(gè)值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows] USERPostMessageLimit,最小可以是 4000。
希望本文所述對(duì)大家的VC程序設(shè)計(jì)有所幫助。
- JQuery Ajax 跨域訪問的解決方案
- 在Ajax中使用Flash實(shí)現(xiàn)跨域數(shù)據(jù)讀取的實(shí)現(xiàn)方法
- 跨域請(qǐng)求之jQuery的ajax jsonp的使用解惑
- 利用iframe實(shí)現(xiàn)ajax跨域通信的實(shí)現(xiàn)原理(圖解)
- JQuery的Ajax跨域請(qǐng)求原理概述及實(shí)例
- 完美解決AJAX跨域問題
- 用iframe設(shè)置代理解決ajax跨域請(qǐng)求問題
- jquery的ajax和getJson跨域獲取json數(shù)據(jù)的實(shí)現(xiàn)方法
- jquery跨域請(qǐng)求示例分享(jquery發(fā)送ajax請(qǐng)求)
- JavaScript使用HTML5的window.postMessage實(shí)現(xiàn)跨域通信例子
- ajax跨域請(qǐng)求js拒絕訪問的解決方法
- IE9版本以下ajax 跨域問題可行解決方法
- VC自定義消息響應(yīng)函數(shù)postmessage用法示例
- 使用HTML5中postMessage知識(shí)點(diǎn)解決Ajax中POST跨域問題
相關(guān)文章
淺析string 與char* char[]之間的轉(zhuǎn)換
與char*不同的是,string不一定以NULL('\0')結(jié)束。string長(zhǎng)度可以根據(jù)length()得到,string可以根據(jù)下標(biāo)訪問。所以,不能將string直接賦值給char*2013-10-10
C++中的三種繼承public,protected,private詳細(xì)解析
我們已經(jīng)知道,在基類以private方式被繼承時(shí),其public和protected成員在子類中變?yōu)閜rivate成員。然而某些情況下,需要在子類中將一個(gè)或多個(gè)繼承的成員恢復(fù)其在基類中的訪問權(quán)限2013-09-09
C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡(jiǎn)單實(shí)例的相關(guān)資料,希望通過本文能幫助大家實(shí)現(xiàn)優(yōu)先隊(duì)列,需要的朋友可以參考下2017-08-08
深入探究協(xié)程在C++中的實(shí)現(xiàn)方式
協(xié)程可以被看作是計(jì)算機(jī)程序中的獨(dú)立功能塊,它們?cè)趫?zhí)行過程中能夠暫停和恢復(fù),與傳統(tǒng)的函數(shù)調(diào)用相比,協(xié)程更像是一種輕量級(jí)的線程,本文我們將深入探究協(xié)程在C++中的實(shí)現(xiàn)方式,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-12-12
C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明
這篇文章主要介紹了C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

