MFC中消息映射的实现

知识是从一本书上看到并总结的,书名:MFC Windows程序设计(第2版)。[美]Jeff Prosise著 北京博彦科技发展有限责任公司 译

对于捕获窗口事件并添加事件处理函数的过程可以有以下两种方式的实现(以鼠标单击事件为例):

1、

  H文件添加:

protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()

  CPP文件添加:

BEGIN_MESSAGE_MAP(子类名, 基类名)
   ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
.
.
.
void 子类名::OnLButtonDown(UINT nFlags, CPoint point)
{
.
.
.
}

2、

  H文件添加:

protected:
afx_msg LRESULT OnLButtonDown(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()

  CPP文件添加

BEGIN_MESSAGE_MAP(子类名, 基类名)
   ON_MESSAGE(WM_LBUTTONDOWN, OnLButtonDown)
END_MESSAGE_MAP()
.
.
.
LRESULT 子类名::OnLButtonDown(WPARAM wParam,LPARAM lParam)
{
.
.
.
}

两者实现的效果是一样的。但是属于不同的方法。其中第二种方法也可以运用到自定义消息的添加过程中去。

原文地址:https://www.cnblogs.com/chentianbao/p/4810833.html