动态创建的 CTreeCtrl 实例的消息响应

由于程序里的 CTreeCtrl 控件实例是通过 CTreeCtr::Create() 来创建的,无法通过 VS 的 Properties 面板里的 Control Events 工具来生成消息映射函数,但控件又需要响应鼠标点击事件,这时最简单的办法就是重载 CTreeCtr 实例的 owner 的 OnNotify() 成员虚函数(这个 owner 也必然是 CWnd 的子类):

protected: virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); BOOL CTreePane::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { NMHDR* pNMHDR = (NMHDR*)lParam; ASSERT(pNMHDR != NULL); switch (pNMHDR->code) { case TVN_SELCHANGED: _OnTreeCtrlSelChanged(wParam, lParam, pResult); break; default: break; } return CWnd::OnNotify(wParam, lParam, pResult); }

你可能感兴趣的:(动态创建的 CTreeCtrl 实例的消息响应)