Frage

Ich meine, klicken Sie auf Element von TreeView -> Es wird in ListView angezeigt.

Ich erstelle solche Steuerelemente (wo Baum und Liste -> ctreeviewCtrl und 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);

Welche Parameter haben die Ereignisfunktion?

War es hilfreich?

Lösung

TVN_SELCHANGED -Benachrichtigungscode:

Benachrichtigt das übergeordnete Fenster eines Baumanblick-Steuerelements, dass sich die Auswahl von einem Element zu einem anderen geändert hat. Dieser Benachrichtigungscode wird in Form einer WM_NOTIFY -Nachricht gesendet.

Wenn Sie auf ein Element klicken und es die Auswahl der TreeView -Steuerung ändert, wird das Steuerelement gesendet WM_NOTIFY Nachricht an den übergeordneten (z. B. Ihr Dialog) mit Code TVN_SELCHANGED Und du solltest damit umgehen.

Andere Tipps

In Ihrem Mainfrm.h

// ...
CTreeViewCtrlEx m_treeview;

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

und

// mainfrm.h or mainfrm.cpp
LRESULT CMainFrame::OnTVSelChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
  //...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top