Как щелкнуть по одному элементу дерева и открыть новое представление
Здравствуйте , я работаю с SDI :у меня есть два окна сплиттера :левый сплиттер предназначен для TreeView, а второй-для отображения представлений, связанных с выбранным элементом дерева.
Любая справка о том , как, щелкнув в одном выбранном treeitem, вид отображается в левом разделителе.
Что я уже пробовал:
void CConnecterView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; *pResult = 0; CIntClientDoc* pDoc = GetDocument(); //CDocument* pDoc = GetDocument(); // Get a reference to the tree control CTreeCtrl &ctlLeagues = this->GetTreeCtrl(); // Find out what item is selected in the tree HTREEITEM nodSelected = ctlLeagues.GetSelectedItem(); // Get the string of the selected node CString strSelected = ctlLeagues.GetItemText(nodSelected); // Just in case the selected node as a parent, get that parent HTREEITEM nodParentLeague = ctlLeagues.GetParentItem(nodSelected); // Find the string of the parent of the selected node, if it has a parent CString strParentLeague = ctlLeagues.GetItemText(nodParentLeague); // Now you can react depending on the selected node if (strSelected == "Connecter") { //pDoc->CRightView.OnEnChangeEditUserLogin(); }
Jochen Arndt
В чем же проблема?
У вас есть доступ к нужному экземпляру представления через документ, и поэтому вы можете вызывать любые функции-члены. С помощью представлений вы можете переопределить функцию OnUpdate() и действовать в соответствии с переданными аргументами (например, передать указатель на строку в параметре pHint).