[Visual Studio C++] [MFC] 添加用户自定义消息及消息响应函数讲解

一、前言

          本文介绍 两种方法 添加用户自定义消息及消息响应函数。

  •  第一种,用户手动添加两个文件((.h)和 (.cpp))的内容。
  •  第二种,利用 MFC 的集成功能,自动添加。(推荐)

二、讲解

      1.方法一:用户手动添加。

             步骤:

                     1.在“ .h ”文件中:         

                         ①.声明消息,代码如下:

#define WM_MyMessage  WM_USER+100  

  (附:MFC自有的消息都是在WM_USER内的,所以自定义的消息要比WM_USER大。)

                         ②.在类声明中声明消息映射,代码如下:

DECLARE_MESSAGE_MAP()

                         ③.在类声明中定义消息处理函数,代码如下:

afx_msg LRESULT OnMyMessage(WPARAM wParam ,LPARAM lParam);

                         2.在“ .cpp ”文件中 :

                         ①.定义消息映射,代码如下:

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
	ON_MESSAGE(MyMessage, &CAboutDlg::OnMymessage)
END_MESSAGE_MAP()

                         ②.定义消息处理函数,代码如下:

afx_msg LRESULT CAboutDlg::OnMymessage(WPARAM wParam, LPARAM lParam)
{
	return 0;
}

     2.方法二: MFC 软件添加。

            步骤:    

扫描二维码关注公众号,回复: 3617351 查看本文章

                         ①.在“ .h ”文件中声明消息,代码如下:

#define WM_MyMessage  WM_USER+100  

  (附:MFC自有的消息都是在WM_USER内的,所以自定义的消息要比WM_USER大。)

                         ②.声明消息映射、声明消息处理函数、定义消息映射、定义消息处理函数,方法如下:

           可用类向导中消息->添加自定义消息,添加的消息名为WM_MyMessage,自动添加消息处理函数。则系统自动在头文件中添加消息处理函数的声明,.cpp文件中添加消息映射处理及消息处理函数的定义,只需添加定义的具体内容即可。

               

附:软件自动生成结果展示:

                声明消息映射部分:

DECLARE_MESSAGE_MAP()

               声明消息处理函数部分:     

afx_msg LRESULT OnMymessage(WPARAM wParam, LPARAM lParam);

               定义消息处理函数部分:

afx_msg LRESULT CDialog1::OnMymessage(WPARAM wParam, LPARAM lParam)

{

return 0;

}

                 定义消息映射处理部分:

BEGIN_MESSAGE_MAP(CDialog1, CDialogEx)

ON_MESSAGE(WM_MyMessage, &CDialog1::OnMymessage)

END_MESSAGE_MAP()

  3.发送自定义消息

      发送自定义消息,可使用如下两个函数:

SendMessage(WM_MyMessage,0,0);

或者

PostMessage(WM_MyMessage,0,0);

猜你喜欢

转载自blog.csdn.net/Robot_Starscream/article/details/83047389