MFC TVN#U&x27;t调用处理函数

MFC TVN#U&x27;t调用处理函数,mfc,handler,Mfc,Handler,我有一个CTreeCtrl,我喜欢使用它的TVN_ItemExpansing消息,但是处理函数从不调用 CsetkliensDlg.h afx_msg void OnItemExpanding(NMHDR* pNmhdr,LRESULT *lResult); CsetkliensDlg.cpp BEGIN_MESSAGE_MAP(CCsetkliensDlg, CDialogEx) ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, &CCsetkliensDlg

我有一个CTreeCtrl,我喜欢使用它的TVN_ItemExpansing消息,但是处理函数从不调用

CsetkliensDlg.h

afx_msg void OnItemExpanding(NMHDR* pNmhdr,LRESULT *lResult);
CsetkliensDlg.cpp

BEGIN_MESSAGE_MAP(CCsetkliensDlg, CDialogEx)
ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, &CCsetkliensDlg::OnItemExpanding)
END_MESSAGE_MAP()


这些项有子项。

您正试图在父对话框中捕获通知,因此应使用ON\u NOTIFY而不是ON\u NOTIFY\u REFLECT

当然,您的消息映射将类似于:

ON_NOTIFY(TVN_项扩展、CTREECTRL_资源ID、ONHandlerFunction)

您可以使用反射机制,但处理程序应该位于CTreeCtrl派生类中

void CCsetkliensDlg::OnItemExpanding(NMHDR* pNmhdr,LRESULT *lResult)
{
    AfxMessageBox("almafa");
}