Имя пользователя:
Пароль:
 

Название темы: Строки в С\С++
Показать сообщение отдельно

Старожил


Сообщения: 163
Благодарности: 0

Профиль | Отправить PM | Цитировать


Раз вы так все хорошо со строками ориентируетесь, то объясните такую вещь:
Visual C++
С помощью CListCtrl создаю свой собственный класс списка (использую пример, естественно), где каждый элемент списка представляет собой кнопку. Для отрисовки строк используется процедура
Код: Выделить весь код
DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
...
dc.DrawTedxt((LPCTSTR)lpDrawItemStruct->itemData,rect,
 * *DT_LEFT | DT_WORKBREAK);
dc.Detach();
}
//Строки добавляем сюда

m_List.AddString(_T("Some String"));
но если строки добавлять не константы, а так
CString str="Some String";
m_List.AddString(str); *
на экране галиматья,
т.е. любое использование локальных для данной процедуры переменных приводит к тому, что данные не отображаются.
если использовать
char str=new char[20];
...
то все отображается, но при попытке
delete str[] все накрывается, потому что список использует эти значения
Итог такой работает только если самостоятельно плодить утечку памяти, где ж это все хранится?

сама функция DrawItem использует не адрес а число, адрес содержащее, и в чем загвоздка не пойму


[s]Исправлено: Crew, 23:14 7-04-2003[/s]

-------
"Сколь бы сложной ни казалась проблема на первый взгляд, она, если правильно к ней подойти, окажется еще более сложной" - Пол Андерсон


Отправлено: 23:12, 07-04-2003 | #11

Название темы: Строки в С\С++