Здравствуйте, rgezikov, Вы писали:
R>Всем привет!
R>Есть у меня вот такая проблема:
R>В OnInitialUpdate() я инициализирую CTreeCtrl:
R>HTREEITEM rItem = m_DUTTree.InsertItem("DUT(s)"); R>for(int i = 0; i < MAX_CHAN_NUMBER; i++) R>{ R> CString itemName; R> itemName.Format("DUT %02d", i); R> HTREEITEM chanItem = m_DUTTree.InsertItem(itemName.GetBuffer(), rItem); R>}
R>Потом добавляю еще в него (DUTTree) данные. Потом хочу сбросить его и R>добавить в него данные заново. Для этого делаю:
R>m_DUTTree.DeleteAllItems();
R>и то же самое, что описано выше. Но почему-то все в результате получаю R>пустой контрол. Что не так?
R>Заранее благодарю, R>Роман.
Папа, а баги бывают? Нет, сынок, это фантастика...
Ну даже не знаю... Проверить первый Insert (который не в цикле), что он что то осмысленное возвращает...
Здравствуйте, rgezikov, Вы писали:
R>Дмитрий Наумов wrote:
>> Ну даже не знаю... Проверить первый Insert (который не в цикле), что он >> что то осмысленное возвращает...
R>Проверял. Ставлю точку останова на вызове первого инсерта:
R>HTREEITEM rItem = m_DUTTree.InsertItem("DUT(s)");
R>До вызова rItem показывается как "null", а после вызова "{_TREEITEM}". И R>в цикле тоже самое. Тока все равно не стреляет. Ж8-/
А сам контрол (дерево) никто не удалял? то есть в тот момент когда Insert делаете, чему m_DUTTree.m_hWnd равен?
То бишь, контрол никто никуда не удалял. Создаются все айтемы как
настоящие... А нифига нету на экране!!! То есть после первого прохода
есть, а потом нету!!! МАМА!!!!!!!! ААААААААА!!!!!!!!!!!
Слушайте, может там какой DDX надо выполнить или еще чего? Я с МФЦ
недавно работаю могу любую элементарщину не знать. Помогите, плиз!
"Держаться нету больше сил!" (С) Мультик
Здравствуйте, rgezikov, Вы писали:
>> А сам контрол (дерево) никто не удалял? то есть в тот момент когда >> Insert делаете, чему m_DUTTree.m_hWnd равен?
R>Я тихо фигею... Хорошо, что тут ни капли водки... Ей богу нажрался бы.
R>Сделал так:
R>m_DUTTree.DeleteAllItems();
R>TVINSERTSTRUCT tvInsert; R>tvInsert.hParent = NULL; R>tvInsert.hInsertAfter = NULL; R>tvInsert.item.mask = TVIF_TEXT; R>tvInsert.item.pszText = _T("DUT(s)"); R>HTREEITEM rItem = m_DUTTree.InsertItem(&tvInsert);
R>TRACE( "m_DUTTree.m_hWnd = %d\n", m_DUTTree.m_hWnd ); R>TRACE( "rItem = %d\n", rItem );
R>for(int i = 0; i < MAX_CHAN_NUMBER; i++){ R> CString itemName; R> itemName.Format("DUT %02d", i); R> HTREEITEM chanItem = m_DUTTree.InsertItem(itemName.GetBuffer(), rItem); R> TRACE( "chanItem[%d] = %d\n", i, chanItem ); R>}
R>А вот результат двух проходов в окне отладочного вывода: R>m_DUTTree.m_hWnd = 4916404 R>rItem = 1498648 R>chanItem[0] = 1455400 R>chanItem[1] = 1509544 R>chanItem[2] = 1509648 R>chanItem[3] = 1509752 R>chanItem[4] = 1509856 R>chanItem[5] = 1509960 R>chanItem[6] = 1510064 R>chanItem[7] = 1510168 R>m_DUTTree.m_hWnd = 4916404 R>rItem = 1455272 R>chanItem[0] = 1455400 R>chanItem[1] = 1498648 R>chanItem[2] = 1509544 R>chanItem[3] = 1509648 R>chanItem[4] = 1509752 R>chanItem[5] = 1509856 R>chanItem[6] = 1509960 R>chanItem[7] = 1510064
R>То бишь, контрол никто никуда не удалял. Создаются все айтемы как R>настоящие... А нифига нету на экране!!! То есть после первого прохода R>есть, а потом нету!!! МАМА!!!!!!!! ААААААААА!!!!!!!!!!!
R>Слушайте, может там какой DDX надо выполнить или еще чего? Я с МФЦ R>недавно работаю могу любую элементарщину не знать. Помогите, плиз! R>"Держаться нету больше сил!" (С) Мультик
R>Роман.
Ну так как у тебя это Control, а не Value то имхо DDX тут не поможет.
Я извиняюсь что влезаю в вашу дискуссию.
Боюсь показаться занудой, но всё таки скажу
не могли бы вы в дальнейшем выделять ваш код в тэги ccode /ccode или просто c/c
Вот сравните:
Вариант в вашем стиле:
BOOL CLvDeleteCommand::Execute()
{
CODComponentSet* pCompSet = GetComponents();
Здравствуйте, rgezikov, Вы писали:
R>Всем привет!
R>Есть у меня вот такая проблема:
R>В OnInitialUpdate() я инициализирую CTreeCtrl:
R>Потом добавляю еще в него (DUTTree) данные. Потом хочу сбросить его и R>добавить в него данные заново. Для этого делаю:
R>m_DUTTree.DeleteAllItems();
R>и то же самое, что описано выше. Но почему-то все в результате получаю R>пустой контрол. Что не так?
Здравствуйте, ank, Вы писали:
ank>Здравствуйте, rgezikov, Вы писали:
R>>Всем привет!
R>>Есть у меня вот такая проблема:
R>>В OnInitialUpdate() я инициализирую CTreeCtrl:
R>>Потом добавляю еще в него (DUTTree) данные. Потом хочу сбросить его и R>>добавить в него данные заново. Для этого делаю:
R>>m_DUTTree.DeleteAllItems();
R>>и то же самое, что описано выше. Но почему-то все в результате получаю R>>пустой контрол. Что не так?
ank>В свойствах TreeCtrl поставь стиль SCROLL в TRUE.
ank>С уважением, ank
Спасибо огромное! Все заработало. Физику процесса, правда, я так и не осознал...