1.postmessage和sendmessage函式的區別
使用者可以通過postmessage和sendmessage函式來傳送自定義訊息,其區別在於:
postmessage只把訊息放入佇列,不管訊息處理程式是否處理都返回,然後繼續執行,這是個非同步訊息投放函式;
sendmessage必須等待訊息處理程式處理訊息完了之後才返回,繼續執行,這是個同步訊息投放函式;
而且,postmessage的返回值表示postmessage函式執行是否正確;而sendmessage的返回值表示其他程式處理訊息後的返回值。
2.自定義訊息的傳送方法
(1)在 resource.h 或 stdax.h 檔案新增如下**定義乙個自己的訊息:
#define wm_my_message wm_user +1
(2)在訊息處理函式所在的類的標頭檔案中新增如下**:
//}afx_msg
declare_message_map( )
(3)在訊息處理函式所在的類的cpp檔案中新增如下**:
begin_message_map(... , ...)
//}afx_msg_map
......
end_message_map()
(4)在訊息處理函式所在的類的cpp檔案中手動新增訊息相應函式**:
void cpostmessageview::onmymessage(/*wparam wparam, lparam lparam*/)
(5)在需要傳送訊息的地方新增**:
postmessage(wm_my_message);或
sendmessage(wm_my_message);
3.從乙個類向mainframe類傳送自定義訊息
直接使用postmessage或sendmessage函式只能向函式所在的類傳送訊息,如果想向mainframe類傳送訊息,可以使用下面的**:
((cmainframe*)afxgetmainwnd())->postmessage(wm_***); 或
((cmainframe*)afxgetmainwnd())->sendmessage(wm_***);
vc6 0新增自定義使用者訊息的基本過程
在學習首先弄清楚兩點 1 誰要傳送這個訊息 2 誰要接受這個訊息。用乙個簡單的例子來說明。物件a向b 也可以就是a到a 傳送訊息。1 傳送訊息 首先在a的標頭檔案中定義這個訊息 define wm usermessage wm user 30 所有自定義訊息都是以wm user訊息為基礎加上乙個任意...
VC自定義訊息
示例 主對話方塊a edit控制項 副對話方塊b edit控制項 將b中edit內容在其銷毀後,顯示在a中edit中 1 自定義訊息 define wm mymsg wm user 100 2 b cpp afxgetmainwnd sendmessage wm mymsg,wparam 0,lpa...
VC中自定義訊息實現
在vc專案開發中,很多時候需要自己定義訊息進行事務處理。上次也剛好有同學問及,這裡綜合網路上的一些資料,集中起來供參考。u 自定義訊息 我們可以通過一下兩種方法來自定義乙個訊息 1 方法一 step 1 使用wm taskbarcreated來確定乙個沒有被windows本身搶占 的訊息值,在想新增...