Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CListBox - как очистить? WTL 
V
    Опции темы
bel_nikita
Дата 16.8.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 2
Всего: 47



Как очистить CListBox?
Код

void UpdateListBox( CListBox *listbox, profile_list_t* plist )
{
  CString sitem;
  int select;
  int icount = listbox->GetCount();  // icount=6 
  if ( icount )
  {
    select = listbox->GetCurSel();
    listbox->GetText( select, sitem );
    for ( int i = 0 ; i < icount; ++i )
      listbox->DeleteString( i );  // удаляем элементы
  }

  icount = listbox->GetCount(); // !!! Бац! icount=3. Мы же очистили листбокс!

  profile_list_t::iterator it;
  for ( it = plist->begin(); it != plist->end(); ++it )
    listbox->AddString( (*it).name.c_str() );

  for ( int i = 0 ; i < listbox->GetCount(); ++i )
  {
    CString curdata;
    listbox->GetText( i, curdata );
    if ( sitem == curdata ) break;
  }
  if ( i == listbox->GetCount() )
    listbox->SetCurSel( 0 );
  else 
    listbox->SetCurSel( i );  
}

Данная функция должна очистить CListBox и заново заполнить его элемеентами из profile_list_t

Это сообщение отредактировал(а) bel_nikita - 16.8.2007, 12:38


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Bukmop
Дата 16.8.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.6.2006
Где: Москва

Репутация: 2
Всего: 3



bel_nikita, после каждого выполнения DeleteString( i ) , кличество элементов списка уменьшается. Дойдя до середины, DeleteString не может удалить четвёртый элемент, т.к. в списке их осталось только три.
PM MAIL   Вверх
bel_nikita
Дата 16.8.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 2
Всего: 47



 smile 
Код
listbox->ResetContent();



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.