MFC中的afx_msg和BEGIN_MESSAGE_MAP

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

才可以实现消息的映射和响应.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值