BEGIN_MESSAGE_MAP 下面是定义:什么事件发生时该执行哪个子程序。
是MFC定义的宏,表示开始一个消息的映射描述。
BEGIN_MESSAGE_MAP( theClass, baseClass )
Parameters
theClass
Specifies the name of the class whose message map this is.
baseClass
Specifies the name of the base class of theClass
Remarks
Use the BEGIN_MESSAGE_MAP macro to begin the definition of your message map.
In the implementation (.CPP) file that defines the member functions for your class, start the message map with the BEGIN_MESSAGE_MAP macro, then add macro entries for each of your message-handler functions, and complete the message map with the END_MESSAGE_MAP macro.
For more information on message maps and the BEGIN_MESSAGE_MAP macro, seeAdding a Dialog Box in Visual C++ Tutorials.
Example
// example for BEGIN_MESSAGE_MAP
BEGIN_MESSAGE_MAP( CMyWindow, CFrameWnd )
//{{AFX_MSG_MAP( CMyWindow )
ON_WM_PAINT()
ON_COMMAND( IDM_ABOUT, OnAbout )
//}}AFX_MSG_MAP
END_MESSAGE_MAP( )
在相应的.cpp中写入这样的消息映射之前,要在相应的类中用 afx_msg 声明某个函数是消息映射函数
如在类class CExample1Dlg : public CDialog的头文件中添加:
afx_msg LRESULT OnServerMessage(WPARAM wParam,LPARAM lParam);
在.cpp文件中添加:ON_MESSAGE(SER_MESSAGE,OnServerMessage)
然后就在其.cpp文件中写好关于OnServerMessage()的定义函数.
但是在本例中SER_MESSAGE没有事先定义一个消息映射
要在类class CExample1Dlg : public CDialog的头文件中定义一个消息映射号如
#define SER_MESSAGE WM_USER+100
才可以实现消息的映射和响应.