【问题标题】:MFC TVN_ITEMEXPANDING doesn't call the handler functionMFC TVN_ITEMEXPANDING 不调用处理函数
【发布时间】:2012-01-25 20:36:44
【问题描述】:

我有一个 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");
}

项目有子项。

【问题讨论】:

    标签: mfc handler


    【解决方案1】:

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

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

    ON_NOTIFY(TVN_ITEMEXPANDING, CTREECTRL_RESOURCES_ID, ONHandlerFunction)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多