CTreeCtrl ошибка
От: 17dufa  
Дата: 22.03.07 11:07
Оценка:
Поправлено форматирование текста. — SchweinDeBurg

Здраствуйте,
возникает ошибка при выходе из диалога, при попытке посмотреть, что за ошибка — показывает файл afximpl.h и free.c. Ошибка стала возникать после добавления элементов в CTreeCtrl, причем, если элементы просто добавить, но не открывать — ошибки нет.

//очистить список
trcConfig.DeleteAllItems();

//загрузить корневой элемент "Конфигурация"
HTREEITEM root = trcConfig.InsertItem( TVIF_TEXT | TVIF_PARAM, TEXT("Концигурация"), 0, 0, 0, 0, (LPARAM)&config, 0, 0 );
//цикл по всем проектам
int cProjects = config.getItemCount();
for( int i = 0; i < cProjects; i++ )
{
    //получить проект и добавить его к списку
    TreeNodeProject * pr = config.getItem(i);
    CString name = *pr->getName();
    HTREEITEM project = trcConfig.InsertItem( TVIF_TEXT | TVIF_PARAM, name.GetBuffer(), 0, 0, 0, 0, (LPARAM)pr, root, 0 );
}

config — это контейнер, который хранит указатели на классы TreeNodeProject.

P.S. И заодно еще один вопрос, как поместить текст из CString в CEdit, я пользуюсь CEdit.SetWindowTextW( CString.GetBuffer() ); но чую, что это не самый лучший способ
Re: CTreeCtrl ошибка
От: 17dufa  
Дата: 22.03.07 11:37
Оценка:
Оказалось все нормально, просто я еще недели 2 назад повесил обработчик на TvnSelchanged, и в нем некорректно работал, а сейчас я про него забыл)
Вопрос по CString остался, но вообще думаю можно удалить тему
Re: CTreeCtrl ошибка
От: vlad588 Россия  
Дата: 22.03.07 22:31
Оценка:
Здравствуйте, 17dufa, Вы писали:

1>P.S. И заодно еще один вопрос, как поместить текст из CString в CEdit, я пользуюсь CEdit.SetWindowTextW( CString.GetBuffer() ); но чую, что это не самый лучший способ


А зачем GetBuffer() ? Почему нельзя просто: myEdit.SetWindowText(myString);
Re[2]: CTreeCtrl ошибка
От: 17dufa  
Дата: 23.03.07 11:52
Оценка:
Здравствуйте, vlad588, Вы писали:

V>А зачем GetBuffer() ? Почему нельзя просто: myEdit.SetWindowText(myString);


у меня студия видит только CEdit::SetWindowText( LPCTSTR )
CEdit::SetWindowText( CString ) — нет.
Re[3]: CTreeCtrl ошибка
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 23.03.07 13:04
Оценка:
Здравствуйте, 17dufa, Вы писали:

1>CEdit::SetWindowText( CString ) — нет.


CSrting имеет оператор приведения к типу LPCTSTR.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.