vc6 0新增自定義使用者訊息的基本過程

2021-06-05 06:21:05 字數 1242 閱讀 1698

在學習首先弄清楚兩點:(1)誰要傳送這個訊息(2)誰要接受這個訊息。

用乙個簡單的例子來說明。物件a向b(也可以就是a到a)傳送訊息。

1   傳送訊息

首先在a的標頭檔案中定義這個訊息:

#define    wm_usermessage    wm_user+30

所有自定義訊息都是以wm_user訊息為基礎加上乙個任意的自然數來表示的。a是向外傳送訊息的物件,因此在a的某個方法(函式)裡就會呼叫用來發訊息的函式b::sendmessage()/b::postmessage(),因為是b接受訊息,因此是如上的形式。

2   接受訊息

物件接受乙個訊息,應該有三部分:在標頭檔案中有該訊息的處理函式的原型;在實現檔案中有接受訊息對映的巨集; 以及該訊息的處理函式的具體實現。

2.1   標頭檔案中加上自定義訊息的處理函式原型

在declare_message_map()語句之前,一對afx_msg之間加上如下形式的函式原型:

afx_msg   lresult onprocname( wparam wparam, lparam lparam );

對win32來說,wparam, lparam是傳遞訊息最常用的手段。

2.2   在實現檔案中加上接受訊息對映的巨集

在cpp檔案裡,begin_message_map語句之後,在一對afx_msg_map之間,增加 如下形式的**:

on_message(wm_usermessage, onprocname)

上面是不用分號結尾的。

2.3   在實現檔案中給出訊息處理函式的具體實現。

vc++中自定義訊息四步走完

開始用到自定義訊息,找了半個小時,總結如下:

1、首先在使用者類中宣告自定義訊息wm_showtask(當然可以為其他):

#define wm_showtask wm_user + 101

2、然後在類成員宣告中宣告訊息處理函式

afx_msg void mymessageproc();

3、在類實現檔案中新增訊息對映巨集

on_message(wm_mymessage,mymessageproc);

(如果使用者需要乙個整個系統唯一的訊息,可以呼叫 sdk 函式 registerwindowmessage 並使用 on_register_message 巨集指令取代 on_message 巨集指令,其餘步驟同上。)

4、在類實現檔案中新增訊息處理函式

lresult cmydlg::mymessageproc()

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

1.postmessage和sendmessage函式的區別 使用者可以通過postmessage和sendmessage函式來傳送自定義訊息,其區別在於 postmessage只把訊息放入佇列,不管訊息處理程式是否處理都返回,然後繼續執行,這是個非同步訊息投放函式 sendmessage必須等待訊...

VC新增自定義訊息

在vc 中想加入自定義訊息,以下方法可供參考 1 首先定義訊息 cpp view plain copy print?define wm mymessage wm user 100 define wm mymessage wm user 100 2 在.h標頭檔案中,加入訊息響應函式 cpp view...

MFC新增使用者自定義訊息

1 傳送訊息 首先在a的標頭檔案中定義這個訊息 define wm usermessage wm user 100所有自定義訊息都是以wm user訊息為基礎加上乙個任意的自然數來表示的。2 接受訊息 物件接受乙個訊息,應該有三部分 在標頭檔案中有該訊息的處理函式的原型 在實現檔案中有接受訊息對映的...