乙個windows訊息機制使用

2022-07-14 21:54:17 字數 598 閱讀 2759

最近一直搞那改版後的遊戲啟動介面,在主視窗加了個樹形控制項。設計了個ctree類繼承於ctreectrl,再放了個樹形控制項物件m_treectrl作為主視窗類cserver的成員。

現在遇到的問題是,點選了樹形控制項的某個節點如何設定相應的資料到主介面的乙個控制項上。點選事件是在ctree類裡響應的,但要呼叫cserver裡的乙個介面setstate(data)來設定相應資料。

剛開始一直想在設計模式上解決這問題,但一直苦思不得。後來轉向windows機制那裡思考,很快找到了解決方法。

在ctree加兩個成員: cwnd  *mp_wnd; uint  m_msg;在cserver定義個巨集wm_tree_click,然後在其begin_message_map與end_message_map之間加入on_message(wm_tree_click,&cserver::setstate)。再在初始化樹形控制項的時候,設定其成員m_treectrl.mp_wnd = this;  m_treectrl.m_msg= wm_tree_click;最後在ctree裡的滑鼠點選事件裡加入:mp_wnd->sendmessage(m_msg),即可在cserver裡的setstate()介面裡響應。

每天一點點的新發現,心情舒暢。

WINDOWS訊息機制 一

windows是乙個訊息驅動的錯做系統。乙個訊息由乙個訊息名稱 uint型別 和兩個引數 wparam,lparam 構成。當使用者進行了輸入或是視窗的狀態發生改變時,系統會傳送訊息到某個視窗。例如當選單選中之後會有wm command訊息傳送,wparam的高字中 hiword wparam 是命...

windows訊息機制

一 windows中有乙個系統訊息佇列,對於每乙個正在執行的windows應用程式,系統為其建立乙個 訊息佇列 即應用程式佇列,用來存放該程式可能 建立的各種視窗的訊息。應用程式中含有一段稱作 訊息迴圈 的 用來從訊息佇列中檢索這些訊息並把它們分發到相應的視窗函式中。二 windows為當前執行的每...

windows訊息機制

一 windows中有乙個系統訊息佇列,對於每乙個正在執行的windows應用程式,系統為其建立乙個 訊息佇列 即應用程式佇列,用來存放該程式可能 建立的各種視窗的訊息。應用程式中含有一段稱作 訊息迴圈 的 用來從訊息佇列中檢索這些訊息並把它們分發到相應的視窗函式中。二 windows為當前執行的每...