在ATL对话框里,树控件怎么接收WM_NOTIFY消息

在ATL对话框里,树控件如何接收WM_NOTIFY消息?
当点击另外一个按钮就要给树控件发送TVN_SELCHANGED消息,但树控件上没有改变当前选中的节点.
请问如何实现?
窗口的消息映射:
BEGIN_MSG_MAP(CEditAttrDlg)
MESSAGE_HANDLER(WM_INITDIALOG,   OnInitDialog)
COMMAND_ID_HANDLER(IDCANCEL,   OnCancel)
// REFLECTED_NOTIFY_CODE_HANDLER()
// REFLECTED_NOTIFY_HANDLER(IDC_TREE,   TVN_SELCHANGED,   OnSelchangedTree)
NOTIFY_HANDLER(IDC_TREE,   TVN_SELCHANGED,   OnSelchangedTree)
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
在点击Cancel按钮时需要发送TVN_SELCHANGED,我的代码:
NMTREEVIEW       vi;      
memset((void*)&vi,0,sizeof(NMTREEVIEW));      
vi.hdr.hwndFrom   =   m_Tree.m_hWnd;      
vi.hdr.idFrom   =   ::GetWindowLong(m_Tree.m_hWnd,GWL_ID);      
vi.hdr.code   =   TVN_SELCHANGED;      
vi.action   =   TVN_SELCHANGED;      
//vi.itemOld       =       hOld;      
//vi.itemNew       =       hNew;      

::SendMessage(m_Tree.m_hWnd,WM_NOTIFY,(WPARAM)vi.hdr.idFrom,(LPARAM)&vi);
但没有效果.

------解决方案--------------------
TVN_SELCHANGED是树控件给父窗口发的通知消息.... 你刚好弄反...
------解决方案--------------------
Notify消息是由父窗口接收的,你应该给父窗口发送这个消息,不是给树控件
------解决方案--------------------
Notify消息的传递是逐渐上溯,由当前子类向父类不断查找比对的啊