VC 6 0中如何傳送自定義訊息

2021-06-01 17:56:02 字數 1346 閱讀 9241

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本身搶占 的訊息值,在想新增...