MFC發送自定義消息:SendMessage與PostMesage

1.普通的自定義消息發送步驟:
(1)在.h文件聲明自定義消息:
在這裏插入圖片描述
(2)在.h文件的類中聲明消息處理函數:
在這裏插入圖片描述
(3)在.cpp文件的消息映射宏裏將消息與消息處理函數綁定:
在這裏插入圖片描述
(4)在.cpp文件中定義消息處理函數:
在這裏插入圖片描述
(5)發送消息即可觸發對應消息函數:
在這裏插入圖片描述
2.PostMessage和SendMessage發送局部變量的區別

總結: PostMessage發送局部變量,因爲其不會等待處理函數結束,自己就繼續往下執行了,可能會導致PostMessage所在的函數運行完畢,局部變量內存被釋放,而處理函數接收到的變量地址就成了野指針; SendMessage會等待處理函數執行完畢,自己再往下執行,所以處理函數運行期間接受的地址一直存在,可以安心操作,所以局部變量只能用SendMessage發送,全局變量則兩個函數都可以發送。

PostMessage發送局部變量的結果:
在這裏插入圖片描述
SendMessage發送局部變量的結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章