MFC消息映射

本文详细探讨了MFC(Microsoft Foundation Classes)中的消息映射机制,它是Windows应用程序开发中的关键概念。通过消息映射,开发者可以将窗口消息与特定的成员函数关联起来,实现UI交互的响应。文章涵盖了MFC如何处理WM_PAINT消息以进行窗口绘制,以及如何使用ON_BN_CLICKED宏来响应按钮点击事件。此外,还讨论了消息映射表的结构和声明,以及如何自定义消息映射以增强应用程序的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、消息映射机制
	1.作用
		在不重写 WindowProc 虚函数的大前提下,仍然可以处理消息。

	2.使用方法
		(1).类内必须声明宏
			DECLARE_MESSAGE_MAP()						//声明消息映射宏
		
		(2).类外必须实现宏
			BEGIN_MESSAGE_MAP(自定义类名, 继承的父类名)	//开始消息映射宏
			ON_MESSAGE(消息ID, 消息处理函数)			//中间添加各种消息宏
			......
			END_MESSAGE_MAP()							//结束消息映射宏
			
		总结:当一个类具备上述两个要件,这个类就可以按照消息映射机制来处理消息。
		
		
二、宏展开代码
	#include<afxwin.h>
	
	class CMyFrameWnd : public CFrameWnd
	{
	
	//DECLARE_MESSAGE_MAP()							//声明消息映射宏展开
	protected:
		static const AFX_MSGMAP* PASCAL GetThisMessageMap();
		virtual const AFX_MSGMAP* GetMessageMap() const;
	
	public:
		LRESULT OnCreate(WPARAM wParam, LPARAM lParam)
		{
			AfxMessageBox("WM_CREATE");
			return 0;
		}
	};
	
	//BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)		//开始消息映射宏展开
	//PTM_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值