MFC中不同對話方塊間使用SendMessage發送自訂訊息的具體實現

來源:互聯網
上載者:User

標籤:style   color   使用   strong   檔案   for   

1. 基本知識SendMessage的基本結構如下:SendMessage(    HWND hWnd,  //訊息傳遞的目標視窗或線程的控制代碼。    UINT Msg, //訊息類別(這裡可以是一些系統訊息,也可以是自己定義,下文具體介紹,)    WPARAM wParam, //參數1 (WPARAM 其實是與UINT是同種類型的,  //在vc編譯器中右鍵有個“轉到WPARAM的定義”的選項可以查看。     LPARAM lParam); //參數2其中一些參數的由來如下://typedef unsigned int UINT;//typedef UINT WPARAM;//typedef LONG LPARAM;//typedef LONG LRESULT; 2.具體實現 主要有兩部分組成,一部分是發送訊息的對話方塊,一部分是接受訊息的對話方塊。1)發送訊息部分 (1).首先在發送訊息的標頭檔中自訂一個訊息,格式如下: #define WM_USERMESSAGE WM_USER+101 //WM_USERMESSAGE為自己定義的訊息名稱 (2).然後在要發送訊息的函數中添加將要發送的自訂訊息,代碼如下:::SendMessage(hwnd,WM_USERMESSAGE,XXXX,XXXX); 其中,hwnd是要發送到的對話方塊的控制代碼,WM_USERMESSAGE為使用者自訂的訊息名稱,若傳值,則放在後兩個參數中。2)接收訊息部分 (1).首先同樣在標頭檔中定義自訂訊息(與發送訊息部分保持一致),如下:#define WM_USERMESSAGE WM_USER+101 //WM_USERMESSAGE為自己定義的訊息名稱 (2).假設打算在函數ReceiveMessage()中接收函數,那麼在接收對話方塊的標頭檔中找到訊息映射函數的聲明部分,加入自訂的訊息映射函式宣告, 如下: // Generated message map functions //{{AFX_MSG(CBaseInfoView)  afx_msg LRESULT ReceiveMessage(WPARAM wParam, LPARAM lParam); //添加自訂訊息聲明,其他程式碼為程式原有   //}}AFX_MSG 然後在接收訊息對話方塊的源檔案中找到訊息映射宏部分,加入我們自訂的訊息映射宏,代碼如下:BEGIN_MESSAGE_MAP(CBaseInfoView, CFormView)//  //{{AFX_MSG_MAP(CBaseInfoView)    ON_MESSAGE(WM_USERMESSAGE,ReceiveMessage) // 添加自訂訊息映射宏,其他程式碼為程式原有   //}}AFX_MSG_MAP END_MESSAGE_MAP() 最後在源檔案中自訂訊息接收函數ReceiveMessage中添加接收訊息處理函數,例如下: LRESULT CBaseInfoView::ReceiveMessage(WPARAM wParam, LPARAM lParam)   {   int recvint = wParam;   CString recvstr = (LPCTSTR)lParam; XXXXXXXXXXXXXX   //自訂訊息處理,recvint和recvstr為傳遞過來的值,可根據需要進行選擇處理 return true; }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.