您的位置:首页 > 其它

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

2010-07-12 11:25 627 查看
BEGIN_MESSAGE_MAP 把消息和函数指针联系起来

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

ON_MESSAGE(ID,Handler) // 消息映射

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





BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)

//{{AFX_MSG_MAP(CXXXDlg)

//自定义消息

ON_MESSAGE(WM_SWIPECARD, OnSwipeCard)

//自定义消息

ON_MESSAGE(WM_MODEM, OnModem)

ON_MESSAGE(WM_THREAD_ERROR, OnThreadError)

ON_MESSAGE(WM_CHECKTXN, OnOnCheckTxn)



ON_WM_DESTROY()

//}}AFX_MSG_MAP END_MESSAGE_MAP()



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

// Generated message map functions

//{{AFX_MSG(CXXXDlg)

virtual BOOL OnInitDialog();



afx_msg void OnDestroy();

afx_msg LONG OnSwipeCard(WPARAM wParam,LPARAM lParam);

afx_msg LONG OnModem(WPARAM wParam, LPARAM lParam);

afx_msg LONG OnThreadError();



afx_msg LONG OnOnCheckTxn(WPARAM wParam, LPARAM lParam); //}}AFX_MSG DECLARE_MESSAGE_MAP()



3 实现响应函数,

LONG XXXDlg::OnOnCheckTxn(WPARAM wParam, LPARAM lParam)

{ dwCurTranType =0; ..... //这部分添加自己响应代码 return 0; }



LONG XXXDlg::OnThreadError( )

{ ..... //这部分添加自己响应代码 return 0; }



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

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

PostMyMsg(pDlg->m_hWnd, WM_THREAD_ERROR, NULL, NULL );





//消息转发

BOOL PostMyMsg(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

BOOL bRet = FALSE;

bRet = PostMessage(hWnd, uMsg, wParam, lParam);

return bRet;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: