一個windows訊息機制使用

來源:互聯網
上載者:User

      最近一直搞那改版後的遊戲啟動介面,在主視窗加了個樹形控制項。設計了個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()介面裡響應。

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.