天天看點

DECLARE_MESSAGE_MAP用法

DECLARE_MESSAGE_MAP( )

說明:

你的程式中的每一個CCmdTarget的派生類都可以提供一個消息映射以處理消息。在你的類聲明的末尾使用DECLARE_MESSAGE_MAP宏。然後,在實作了類成員函數的.CPP檔案中加入BEGIN_MESSAGE_MAP宏,再加入每個消息處理函數的宏入口,最後使用END_MESSAGE_MAP宏。

注意:

如果你在DECLARE_MESSAGE_MAP之後定義了成員,那麼你必須為它們指定新的通路類型(public,private 或protected)。

關于消息映射和DECLARE_MESSAGE_MAP宏的更多資訊參見“Visual C++程式員指南”中的“消息處理”和“映射主題”。

示例:

// DECLARE_MESSAGE_MAP的例子
class CMyWnd : public CFrameWnd
{
// 成員聲明
DECLARE_MESSAGE_MAP( )
};           

說明:

DECLARE_MESSAGE_MAP()宏的作用是向類中添加消息映射必要的結構體和函數聲明,隻需要添加一次,放在什麼位置并不重要,就如同類裡其他普通函數的聲明可以互相交換順序一樣。 函數的修飾符也是可以自己決定的,遵循一般原則。比如你需要在類外部也可以調用該消息響應函數,就可以定義成public的。

======================================================

在一些資料上,有這麼一段文字:

DECLARE_MESSAGE_MAP()

使用者程式中的每個CCmdTarget派生類必須提供消息映射以處理消息。在類定義的末尾使用DECLARE_MESSAGE_MAP宏。接着,在定義類成員函數的.CPP檔案中,使用BEGIN_MESSAGE_MAP宏,每個使用者消息處理函數的宏項下面的清單以及END_MESSAGE_MAP宏。

注釋:

如果在DECLARE_MESSAGE_MAP之後定義任何一個成員,那麼必須為他們指定一個新存取類型(公共的,私有的,保護的)。

我覺得他描述得欠妥,我的了解是: