標籤: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; }