程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 筆記:vc6.0添加自定義用戶消息的基本過程

筆記:vc6.0添加自定義用戶消息的基本過程

編輯:vc教程

在學習<vc6.0技術內幕>過程中遇到要添加用戶自定義消息的過程.我覺得書上寫的比較散,於是就自己總結了這個基本過程,以為日後備查.

首先弄清楚兩點:(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  在實現文件中給出消息處理函數的具體實現。

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved