MFC自定义消息映射

本文详细介绍了在MFC中实现自定义消息映射的实用步骤,包括在头文件stdafx.h中添加自定义消息宏,并展示了如何通过GetSafeHwnd()获取窗口句柄来发送自定义消息。此外,还提到了发送消息给其他窗口的方法以及针对当前窗口的简化写法。

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

实用的步骤,记下:

1.  在头文件stdafx.h中增加一个自定义消息宏  

     #define WM_MY_TEST WM_USER + 1

2.  在于增加新消息的窗口或对话框类的头文件中增加一个回调函数声明,注意要声明为public
     afx_msg LRESULT OnDrawItem(WPARAM wParam, LPARAM lParam);

3.  在窗口或对话框的cpp文件的BEGIN_MESSAGE_MAP,END_MESSAGE_MAP 中增加一行          
     ON_MESSAGE(WM_MY_TEST, OnDrawItem) 
                
4.  在窗口或对话框的cpp文件中增加回调函数的实现,如:
     LRESULT CMyDialog::OnDrawItem(WPARAM wParam, LPARAM lParam) 
    {
        TRACE("WM_MY_TEST message /n");
        return 0;
    }       

5.  自定义消息的触发
     ::PostMessage(GetSafeHwnd(), WM_MY_TEST, 0, 0);

     其中GetSafeHwnd()得到了一个当前窗口的句柄,此消息将发给当前窗口,如果想发送消息给其它窗口只需改变这个句柄,前提是目的窗口也实现了此消息的处理函数。如果确定发送信息给当前窗口还有另一种写法:

pWnd = CWnd::FronHandle(m_hWnd);

pWnd->PostMessage("WM_MY_TEST,0,0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值