MFC的sendmessage和postmessage 以及sendmessagetimeout

PostMessage只負責將消息放到消息隊列中,不確定何時及是否處理,相當于異步操作,執行后馬上返回
SendMessage要等到受到消息處理的返回碼(DWord類型)后才繼續,相當于同步操作,一直在等待,必須等到消息被處理后才會返回。
SendMessageTimeout 函數,是會有一個超時的操作,防止操作一直沒返回,當前程序掛起,這個函數有幾個參數:

LRESULT SendMessageTimeout(HWND hwnd,
UINT Msg,
WPARAM wParam,
LPARAM IParam,
UINT fuFlags,
UIUT uTimeout,
LPDWORD lpdwResultult);

  

Msg 為 HWND_BROADCAST,是發給所有的窗口。

fuFlags;指定如何發送消息。此參數可為下列值的組合:
SMTO_ABORTIFHUNG:如果接收進程處于“hung”狀態,不等待超時周期結束就返回。
SMTO_BLOCK:阻止調用線程處理其他任何請求,直到函數返回。
SMTO_NORMAL:調用線程等待函數返回時,不被阻止處理其他請求。
SMTO_NOTIMEOUTIFNOTHUNG:Windows 95及更高版本:如果接收線程沒被掛起,當超時周期結束時不返回。
uTimeout:為超時周期指定以毫秒為單位的持續時間。如果該消息是一個廣播消息,每個窗口可使用全超時周期。例如,如果指定5秒的超時周期,有3個頂層窗回未能處理消息,可以有最多15秒的延遲。
IpdwResult:指定消息處理的結果,依賴于所發送的消息。
返回值:如果函數調用成功,返回非零值。如果函數調用失敗,或超時,返回值是零。若想獲得更多的錯誤信息,請調用GetLastError函數。如果GetLastError返回零,表明函數超時。如果使用HWND_BROADCAST,SenddMessaggTimeout不提供單個窗口超時信息。

//for example
//發送端:

? ?WM_CLOSE_AGENT_APP = ::RegisterWindowMessage(_T("CLOSE_AUDIO_DEV_AGENT_APP"));?
? ?PDWORD_PTR lpdwResultult = 0;
? ::SendMessageTimeout(HWND_BROADCAST, WM_CLOSE_AGENT_APP, 0, 0, SMTO_ABORTIFHUNG, 500, lpdwResultult);

? ?//接收端:

? ?//注冊同一個窗口消息,然后監聽注冊的消息

? WM_CLOSE_AGENT_APP = ::RegisterWindowMessage(_T("CLOSE_AUDIO_DEV_AGENT_APP"));??

??ON_REGISTERED_MESSAGE(WM_CLOSE_DEVAGENT_APP, &CILSysAudioDevAgentDlg::OnCloseAgentApp)

?

轉載于:https://www.cnblogs.com/132818Creator/p/11466195.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python PIL圖像處理-框選

框選圖中位置 代碼 from PIL import Image,ImageDraw,ImageFont,ImageFilter import random#------------------------------------- #filepath,[837,103][942,208]#圖片處理,框選 def pic_rectangle(filepath,bound):image Image.open(filepath)draw ImageDraw.D…

Win10卸載python總是提示error2503失敗各種解決辦法

最近win10的電腦裝了python的3.4,然后想卸載,就總是提示error 2053,類似于這種: 下面是我的坎坷解決之路: 1、網上說,任務管理器 --> 詳細信息 --> explorer.exe結束任務,結束資源管理器&…

js高級—查詢商品案例

<div class"search">按照價格查詢&#xff1a;<input type"text" class"start"> - <input type"text" class"end"><button class"search-price">搜索</button> 按照商品名稱查詢&a…

[Codeforces702F]T-Shirts——非旋轉treap+貪心

題目鏈接&#xff1a; Codeforces702F 題目大意&#xff1a;有$n$種T恤&#xff0c;每種有一個價格$c_{i}$和品質$q_{i}$且每種數量無限。現在有$m$個人&#xff0c;第$i$個人有$v_{i}$元&#xff0c;每人每次會買他能買得起的品質最高的一件T恤(當兩件T恤品質相同時優先買價格…

js高級第二天

構造函數和原型 構造函數和原型 在典型的OOP 的語言中&#xff08;如Java&#xff09;&#xff0c;都存在類的概念&#xff0c;類就是對象的模板&#xff0c;對象就是類的實例&#xff0c;但在ES6之前&#xff0c;JS 中并沒用引入類的概念。ES6&#xff0c;全稱ECMAScript6.0…

操作系統原理之文件系統(第五章)

一、文件 1、?件系統的?戶接?包括?件的命名、類型、屬性和對?件的操作 2、?件命名&#xff1a;所有操作系統都允許?1&#xff5e;8個字?組成的字符串 3、?件擴展名&#xff1a;多數操作系統都?持?件名?圓點隔開分為兩部分&#xff0c;圓點后?的部分稱為?件擴展名…

第三次作業------52李金鎮

---恢復內容開始--- 習題1&#xff1a; **1.初始化一個數據集&#xff0c;包括5-10位同學的成績數據&#xff08;數據類型不限&#xff09;&#xff0c;數據格式如下&#xff1a; **學號 姓名 Java C語言 Python2017XXXX 小白 87 68 922017XXXX 小黃 80 76 832017XXXX 小王 75 …

js高級第三天

原型鏈 作用&#xff1a;提供一個成員的查找機制&#xff0c;或者查找規則含義&#xff1a;由原型所串聯起來的鏈裝結構JavaScript 的成員查找機制(規則) 當訪問一個對象的屬性&#xff08;包括方法&#xff09;時&#xff0c;首先查找這個對象自身有沒有該屬性。如果沒有就查…

為什么大學的計算機老師技術那么厲害,卻不愿意當程序員?

不知道大家有多少是從事跟計算機有關的工作的&#xff0c;每次想到大學時的計算機考試&#xff0c;都能令小小編心驚膽戰呀&#xff0c;各式代碼和計算機語言&#xff0c;真的是很令人頭痛了。不過呢&#xff0c;也有很多大神&#xff0c;大學學著其他的專業&#xff0c;卻在畢…

DDG全家桶之3022

本篇文章主要根據360Netlab新出的DDG分析文檔來復現新變種3022&#xff0c;會涉及部分分析和清除的方法&#xff0c;本篇文章只用于學習交流&#xff0c;為廣大受害者提供清除思路 &#xff0c;請勿用于非法用途&#xff0c;產生一切后果與作者無關 詳情請參考文檔&#xff1a;…

js高級第四天

課程回顧&#xff1a; ? 原型鏈&#xff1a;由原型構成鏈狀結構&#xff0c;提供成員查找機制 ? 繼承&#xff1a;組合繼承&#xff1a;構造函數和原型對象 ? 屬性&#xff1a;調用父構造函數的時候用call改變this指向 ? 方法&#xff1a;父實例對象賦值給子原型對象&a…

d3.js 制作簡單的俄羅斯方塊

d3.js是一個不錯的可視化框架&#xff0c;同時對于操作dom也是十分方便的。今天我們使用d3.js配合es6的類來制作一個童年小游戲--俄羅斯方塊。話不多說先上圖片。 1. js tetris類 由于方法拆分的比較細所以加上了一些備注&#xff08;這不是我的風格&#xff01;&#xff09; c…

Flask中路由系統以及藍圖的使用

一、Flask的路由系統 1.app.route()裝飾器中的參數 methods:當前URL地址&#xff0c;允許訪問的請求方式 app.route("/info", methods["GET", "POST"]) def student_info():stu_id int(request.args["id"])return f"Hello Old b…

js高級第五天

課程回顧&#xff1a; ? 原型鏈&#xff1a;由原型構成鏈狀結構&#xff0c;提供成員查找機制 ? 繼承&#xff1a;組合繼承&#xff1a;構造函數和原型對象 ? 屬性&#xff1a;調用父構造函數的時候用call改變this指向 ? 方法&#xff1a;父實例對象賦值給子原型對象&a…

d3.js 制作簡單的貪吃蛇

d3.js是一個不錯的可視化框架&#xff0c;同時對于操作dom也是十分方便的。今天我們使用d3.js配合es6的類來制作一個童年小游戲–貪吃蛇。話不多說先上圖片。 1. js snaker類 class Snaker {constructor() {this._size 30;this._len 3;this._width 900;this._height 690;th…

js高級第六天

Q課程回顧&#xff1a; ? 閉包&#xff1a;有權訪問另外一個函數的局部變量的函數&#xff0c;作用&#xff1a;延伸變量使用范圍 ? mdn&#xff0c;w3c function fn1 () {var n 3;return function () {console.log(n);} }? 遞歸&#xff1a;函數調用其本身 function f…

Chrome 75 lazy-loading

Chrome 75 & lazy-loading https://addyosmani.com/blog/lazy-loading/ https://chromestatus.com/feature/5645767347798016 Chrome 75 將默認啟用延遲加載功能 自 Chrome 75 起&#xff0c;將原生支持圖片的延遲加載&#xff0c;在代碼中編寫 <img loading"lazy&…

d3.js 實現煙花鮮果

今天在d3.js官網上看到了一個煙花的DEMO&#xff0c;是canvas制作的&#xff0c;于是我想用d3.js來實現它&#xff0c;js代碼只有幾行。好了廢話不多說&#xff0c;先上圖。 1 js 類 因為煙花要有下落的效果&#xff0c;所以里面用到了一些簡單的數學和物理知識來模擬重力&…

阿里Sentinel控制臺源碼修改-對接Apollo規則持久化

改造背景 前面我們講解了如何對接Apollo來持久化限流的規則&#xff0c;對接后可以直接通過Apollo的后臺進行規則的修改&#xff0c;推送到各個客戶端實時生效。 但還有一個問題就是Sentinel控制臺沒有對接Apollo&#xff0c;Sentinel控制臺本來就可以修改限流的規則&#xff0…

第八節:EF Core連接MySql和Sqlite數據庫

。。。 轉載于:https://www.cnblogs.com/yaopengfei/p/11507557.html