MFC TVN_ITEMEXPANDING不会调用处理函数

时间:2012-01-25 10:24:44

标签: mfc handler

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

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()

...

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

这些物品有孩子。

1 个答案:

答案 0 :(得分:0)

您正尝试在父对话框中捕获通知,因此您应该使用ON_NOTIFY而不是ON_NOTIFY_REFLECT。

当然,你的消息地图会有点像:

ON_NOTIFY(TVN_ITEMEXPANDING,CTREECTRL_RESOURCES_ID,ONHandlerFunction)

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