Событие Get Click для CTreeViewCtrl - PullRequest
0 голосов
/ 11 января 2012

Я имею в виду, нажмите на элемент древовидной структуры -> он показывает что-то в списке.

Я создаю такие элементы управления (где дерево и список -> 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 ]

1 голос
/ 11 января 2012

Код уведомления TVN_SELCHANGED :

Уведомляет родительское окно древовидного элемента управления о том, что выбор изменился с одного элемента на другой.Этот код уведомления отправляется в форме сообщения WM_NOTIFY.

То есть, когда вы щелкаете элемент и изменяете выбор элемента управления древовидной структуры, элемент управления отправляет сообщение WM_NOTIFY своему родителю (например,как ваш диалог) с кодом TVN_SELCHANGED и вы должны его обработать.

0 голосов
/ 07 февраля 2017

В вашем 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)
{
  //...
}
...