CTreeCtrl *pTree = (CTreeCtrl*)(pDlg->GetDlgItem (IDC_TREE));
pTree->ДелаюЧтоХочу();
Работа с классом CTreeCtrl (MFC)
Обычный вызов функции
CTreeCtrl* pTreeObj->SelectItem( hItem );
не работает, точно так же, как не работают все остальные функции указателя класса pTreeObj при вызове, когда диалоговое окно не активно. То есть и узнать выделенную строку, а следовательно и удалить ее не могу.
Фокус передавать пробовал?
Первый раз слышу - это как? И где можно почитать про это?
BOOL CDialogObj::OnSetActive()
{
pTreeObj->SelectItem( hUnits );
return CPropertyPage::OnSetActive();
}
Но когда окно только активируется - доступа к классу дерева еще нет - так когда его можно получить?
Вытяни на-гора код схематичный, шо-ли?
В момент создания окна или инициализации диалога есть доступ ко всем контролам, что содержатся в окне.
Доступа нет только в конструкторе класса окна.
Если сформулировать точно -как окно обновляет вид дерева, когда оно делается активный - UpdateData оно не вызывает - я его перехватить пытался - как?
[/QUOTE]
У тя ID контрола-дерева есть? Объект диалога есть? Дык получи указатель на контрол-дерево:
Код:
Только не удаляй объект pTree, т. е. не вызывай delete pTree, это произойдет автоматически.
Да, спасибо,что ответил - именно в этом и была проблема - каждый раз, когда необходимо использовать класс дерева, нужно заново получить указатель.
Спасибо всем!