借助Frame8 的框架,添加
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)
ON_COMMAND(CMyFrameWndid, 0)
ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch)
END_MESSAGE_MAP()
在消息映射链表结构中添加新消息ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch)
下面是ON_BN_CLICKED相关的宏定义:
#define ON_NOTIFY(wNotifyCode, id, memberFxn)
{
WM_NOTIFY,
(WORD)(int)wNotifyCode,
(WORD)id,
(WORD)id,
AfxSig_vNMHDRpl,
(AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))&memberFxn
},
#define ON_BN_CLICKED(id, memberFxn)
ON_CONTROL(BN_CLICKED, id, memberFxn)
#define ON_CONTROL(wNotifyCode, id, memberFxn)
{
WM_COMMAND,
(WORD)wNotifyCode,
(WORD)id,
(WORD)id,
AfxSig_vv,
(AFX_PMSG)&memberFxn
},
添加一个函数定义:
void CMyFrameWnd::OnButtonSearch()
{
cout << "CMyFrameWnd::OnButtonSearch/n";
}
主函数中观察打印:
cout << endl << "pMyFrame received a BN_CLICKED, routing path :" << endl;
AfxWndProc(0, BN_CLICKED, 0, 0, pMyFrame); // 这个必须细化,明天继续。
本文介绍了如何在MFC框架中处理控件消息,特别是按钮点击事件(BN_CLICKED)。通过添加BEGIN_MESSAGE_MAP和ON_BN_CLICKED宏,定义了CMyFrameWnd类的OnButtonSearch函数来响应IDC_BUTTON_SEARCH按钮的点击。在消息映射中,详细解释了ON_BN_CLICKED的宏定义,并展示了如何定义和调用响应函数。在主函数中,通过AfxWndProc观察消息路由路径,但实际细化处理将在后续工作中继续探讨。
:MFC消息路由,观察 控件消息的 处理&spm=1001.2101.3001.5002&articleId=4609695&d=1&t=3&u=12843ab27f2b4833b4df83c96b4dd0ad)
208

被折叠的 条评论
为什么被折叠?



