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);
}
相关推荐
浩浩测试一下2 天前
windows 加壳工具代码实现02 - 加壳界面实现MFC
windows·mfc·免杀·加壳器·pe应用
想人陪的玫瑰9 天前
winform 能用 Native AOT 吗?——TDS 项目的实战尝试
c++·mfc
USC-XiangLuXun11 天前
GUI软件灰盒测试技术和方法 篇一
功能测试·microsoft·集成测试·mfc
博客180024 天前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
何以解忧,唯有..1 个月前
Go 语言数据类型详解:从基础到复合类型
开发语言·golang·mfc
tiandyoin1 个月前
MFC奇怪问题--连续窗口ID,关闭其中一个才能打开另一个
dialog·mfc·vc++·ws_child·mdi
兵哥工控1 个月前
高精度微秒延时函数实现顺控工控项目实例
c++·mfc·硬件高精度计时器
兵哥工控1 个月前
MFC开关量输出发脉冲实例
c++·mfc·开关量发脉冲
ZK_H1 个月前
MFC学习——简易计算器以及跨应用通信
学习·5g·mfc
ZK_H1 个月前
MFC程序开发自学笔记其一——windows应用程序与c++基础
c++·笔记·mfc