获取CTreeViewCtrl的Click事件

时间:2012-01-11 15:08:09

标签: wtl

我的意思是点击树视图的元素 - >它显示在列表视图中。

我创建这样的控件(其中树和列表 - >> CTreeViewCtrl和CListViewCtrl)

    split.Create(*this,rcDefault,NULL,0,WS_EX_CLIENTEDGE);
    RECT rlist,rtree;
    list.Create(split,rlist,CListViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | LVS_EDITLABELS, WS_EX_CLIENTEDGE);
    tree.Create(split,rtree,CTreeViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | TVS_EDITLABELS, WS_EX_CLIENTEDGE);
    list.AddColumn(L"KEY",0);
    list.AddColumn(L"VALUE",1);
    split.SetSplitterPanes(tree,list);

哪些参数具有事件功能?

2 个答案:

答案 0 :(得分:1)

TVN_SELCHANGED notification code

  

通知树视图控件的父窗口选择具有   从一个项目变为另一个项目。此通知代码将被发送   WM_NOTIFY消息的形式。

也就是说,当您单击某个项目并更改了树视图控件的选择时,控件会向其父级(例如您的对话框)发送WM_NOTIFY消息,代码为TVN_SELCHANGED,您应该处理它

答案 1 :(得分:0)

在你的mainfrm.h

// ...
CTreeViewCtrlEx m_treeview;

// ...
BEGIN_MSG_MAP(CMainFrame)
// ...
NOTIFY_CODE_HANDLER(TVN_SELCHANGED, OnTVSelChanged)
END_MSG_MAP()

// mainfrm.h or mainfrm.cpp
LRESULT CMainFrame::OnTVSelChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
  //...
}