Member 13927859 Ответов: 2

Как щелкнуть по одному элементу дерева и открыть новое представление


Здравствуйте , я работаю с 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).

2 Ответов

Рейтинг:
1

Richard MacCutchan

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


0x01AA

А 1-это нечестно, попробуйте дать мне маленькие 5, чтобы компенсировать это

Richard MacCutchan

Спасибо. Но одноголосие мне действительно не повредит.

Рейтинг:
1

Member 13927859

у вас есть простой пример того, как управлять выбором элемента дерева .


Nelek

Пожалуйста, используйте виджет "есть вопрос или комментарий", если вы хотите поговорить с кем-то конкретно (как я делаю прямо сейчас с этим сообщением к вашему не решению #2)

Если вы хотите ответить на комментарий, то используйте крошечный виджет "ответить"