C++中添加自定义消息的响应 (BEGIN_MESSAGE_MAP ON_MESSAGE)

C++中添加自定义消息的响应 (BEGIN_MESSAGE_MAP ON_MESSAGE)

1首先要在窗口类的cpp文件手动添加消息响应机制,



ON_MESSAGE(ID,Handler)

LRESULT Handler(WPARAM,LPARAM);//响应的函数


Cpp代码
1. BEGIN_MESSAGE_MAP(CShellDlg, CDialog)
2. //{{AFX_MSG_MAP(CShellDlg)
3. ON_MESSAGE(WM_SENDOFFLINE, OnSendOffline)//自定义消息
4. ON_MESSAGE(WM_SWIPECARD, OnSwipeCard)//自定义消息
5. ON_MESSAGE(WM_MODEM, OnModem)
6. ON_MESSAGE(WM_PINPAD, OnPinPad)
7. ON_MESSAGE(WM_TRANSACTION, OnTransaction)
8. ON_MESSAGE(WM_THREAD_ERROR, OnThreadError)
9. ON_MESSAGE(WM_SENDRECALL, OnSendRecall)
10. ON_MESSAGE(WM_CHECKTXN, OnOnCheckTxn)//自定义消息
11. ON_WM_TIMER()
12. ON_WM_KEYDOWN()
13. ON_WM_DESTROY()
14. //}}AFX_MSG_MAP
15. END_MESSAGE_MAP()



2 其次在窗口类h文件添加如下代码;


Cpp代码
1. // Generated message map functions
2. //{{AFX_MSG(CShellDlg)
3. virtualBOOLOnInitDialog();
4. afx_msgvoidOnTimer(UINTnIDEvent);
5. afx_msgvoidOnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags);
6. afx_msgvoidOnDestroy();
7. afx_msgLONGOnSwipeCard(WPARAMwParam,LPARAMlParam);
8. afx_msgLONGOnModem(WPARAMwParam,LPARAMlParam);
9. afx_msgLONGOnPinPad(WPARAMwParam,LPARAMlParam);
10. afx_msgLONGOnTransaction(WPARAMwParam,LPARAMlParam);
11. afx_msgLONGOnThreadError(WPARAMwParam,LPARAMlParam);
12. afx_msgLONGOnSendOffline(WPARAMwParam,LPARAMlParam);
13. afx_msgLONGOnSendRecall(WPARAMwParam,LPARAMlParam);
14. afx_msgLONGOnOnCheckTxn(WPARAMwParam,LPARAMlParam);
15. //}}AFX_MSG
16. DECLARE_MESSAGE_MAP()

3 实现响应函数,


Cpp代码
1. LONGXXXDlg::OnOnCheckTxn(WPARAMwParam,LPARAMlParam)
2. {
3. dwCurTranType =0;
4. .....
5. //这部分添加自己响应代码
6. return0;
7. }



4 最后在自己需要的地方调用自己定义的消息(消息响应)

MyMsg(pDlg->m_hWnd, WM_CHECKTXN, (WPARAM)TXN_DOWNTYPE, 0);




Cpp代码
1. //消息转发
2. BOOLMyMsg(HWNDhWnd,UINTuMsg,WPARAMwParam,LPARAMlParam)
3. {
4. BOOLbRet = FALSE;
5. bRet = PostMessage(hWnd, uMsg, wParam, lParam);
6. returnbRet;
7. }



这样就全部OK了,等有时间把测试代码在整理出来
原文链接: https://www.cnblogs.com/kingdomheart/archive/2011/04/16/2018338.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/24091

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午1:58
下一篇 2023年2月8日 上午1:58

相关推荐