模組間通訊 訊息機制

2021-09-02 17:48:29 字數 488 閱讀 7539

作者昨天遇到乙個問題,就是其中乙個對話方塊裡的樹節點雙擊時,需要通知另乙個對話方塊中去通過sdk獲取資料庫中的資訊(不同的對話方塊獲取不同的資料資訊),並且該對話方塊中有乙個map表存有多個對話方塊的基類指標。這時怎麼通過基類的指標實現呼叫另乙個或多個對話方塊的不同實現呢?這時我們可以借助訊息機制來解決該問題。思路如下:基類在雙擊的時候傳送自定義訊息,不同的對話方塊處理根據情況處理該訊息。大致的步驟如下:

1.首先定義乙個自定義訊息id,注意該訊息的id必須比wm_user大,且id不能重複,因為乙個wm_user以下都為系統訊息

#define wm_mymsg_updata wm_user+1
2.在對應的需要通知另乙個模組的時候,通過postmessage/sendmessage,傳送該訊息。當然首先需要獲取另乙個對話方塊的指標。

3.在對應的模組中通過類嚮導,新增自定義訊息處理。

大致新增方法可以參考下面的鏈結

最後感謝我們的大佬的技術指導。

程序間通訊機制詳解( ) 訊息佇列

訊息佇列本質上是位於核心空間的鍊錶,鍊錶的每個節點都是一條訊息。訊息佇列存放在核心中並由佇列識別符號標識。訊息資料格式 無論傳送還是接收訊息,訊息的格式都必須按照規範來。數字 1 表示型別為 1 的訊息,數字2 3 4 類似。彩色塊表示訊息資料,它們被掛在對應型別的鍊錶上。訊息型別為 0的鍊錶記錄了...

程序間訊息佇列通訊

要保證server能夠接收client的訊息,就必須保證server的生成的msg的識別符號是一樣的,也就是兩個用的key是必須一樣的。msglucy.c include include include include include include include include include ...

程序間通訊(訊息佇列)

在嵌入式linux應用開發中,linux程序通訊的方式有6種,分別是管道 pipe 及有名管道 named pipe 訊號 signal 訊息佇列 msg 共享記憶體 shm 訊號量 和套接字 socket 在這我就簡單的描述一下程序通訊中的資訊佇列 msg 首先,訊息佇列的實現有重要的幾步 1 建...