MFC 自定义分发消息方法

重点:

1.创建一个专门自定义消息的头文件 constValue.h

#define WM_MY_CUSTOM_MESSAGE (WM_USER + 101) // 自定义消息ID

2.在你需要发送和接收该消息的类中,首先注册这个自定义消息。一般在窗口类(如CWnd派生类)的OnInitDialog、OnCreate或其他初始化函数中进行。

cpp 复制代码
class CMyClass : public CWnd
{
    DECLARE_DYNAMIC(CMyClass)

public:
    CMyClass();
    virtual ~CMyClass();

protected:
    DECLARE_MESSAGE_MAP()

    afx_msg LRESULT OnMyCustomMessage(WPARAM wParam, LPARAM lParam);
};

BEGIN_MESSAGE_MAP(CMyClass, CWnd)
    ON_MESSAGE(WM_MY_CUSTOM_MESSAGE, &CMyClass::OnMyCustomMessage)
END_MESSAGE_MAP()
  1. 实现自定义消息处理器函数。当消息触发时,此函数会被调用。
cpp 复制代码
LRESULT CMyClass::OnMyCustomMessage(WPARAM wParam, LPARAM lParam)
{
    // 根据wParam和lParam处理自定义消息
    int num = (int)lParam;  //处理成所需要的信息
   ...
    return 0; // 返回值可选,取决于具体应用场景
}
  1. 发送自定义消息。你可以在程序的任何地方通过SendMessagePostMessage函数向拥有该消息处理器的对象发送消息。
cpp 复制代码
class SendMess
{
public:
	static void SendMessage(HWND hWnd) ; //向需要发送的窗口发送消息
	static std::set<HWND> m_hWnds;  //存储需要发送消息的句柄
};



std::set<HWND> SendMess::m_hWnds;
void SendMess::SendMessage(HWND hWnd)
{
	LPARAM myData = int(1);
	::SendMessage(hWnd, WM_MY_CUSTOM_MESSAGE, 0, (LPARAM)myData);
}
相关推荐
MSTcheng.1 天前
CANN ops-math算子的跨平台适配与硬件抽象层设计
c++·mfc
平安的平安2 天前
面向大模型算子开发的高效编程范式PyPTO深度解析
c++·mfc
杜子不疼.2 天前
基于ATVC模板库的Ascend C Vector算子快速开发指南
c语言·开发语言·mfc
范纹杉想快点毕业3 天前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
范纹杉想快点毕业3 天前
状态机设计与嵌入式系统开发完整指南从面向过程到面向对象,从理论到实践的全面解析
linux·服务器·数据库·c++·算法·mongodb·mfc
小黄人软件4 天前
【MFC】底层类显示消息到多个界面上。 MFC + 线程 + 回调 的标准模板 C++函数指针
c++·mfc
范纹杉想快点毕业5 天前
嵌入式系统架构之道:告别“意大利面条”,拥抱状态机与事件驱动
java·开发语言·c++·嵌入式硬件·算法·架构·mfc
范纹杉想快点毕业6 天前
嵌入式实时系统架构设计:基于STM32与Zynq的中断、状态机与FIFO架构工程实战指南,基于Kimi设计
c语言·c++·单片机·嵌入式硬件·算法·架构·mfc
fqbqrr7 天前
2601Mfc,自动化excel
自动化·excel·mfc
fqbqrr7 天前
2601Mfc,自动化excel2
自动化·mfc