当点击另外一个按钮就要给树控件发送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);
但没有效果.
请问如何实现?
窗口的消息映射:
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这个事件