Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Очистка CListBox |
Автор: Rickert 15.7.2006, 17:32 | ||||
В классе даилога описано
В какой-то момент пытаюсь чистить:
Отчищает криво: если строки 3, например, то убивает первую и третью, а вторую оставляет. ![]() |
Автор: Romikgy 15.7.2006, 17:39 | ||
|
Автор: 0x07L 15.7.2006, 18:40 |
А вообще в таком случае лучше юзать ResetContent |
Автор: GioTraliVali 15.7.2006, 22:50 | ||||||
Tak elki palki zelenie slu6ai suda: Ispolzue6 ResetContent() udaliaet vse elementi s listboxa no esli kak ti xotel to nado delat tak int count =m_Choosed.GetCount(); a potom tolko zajat v cikl no tak for(int i = 0 ; i < count ; i++) { m_Choosed.DeleteString(i); } A pri tvoem kode on ne udaliaet krivo on pravilno udaliaet. kogda ti puskae6 cikl to v nachale i = 0 i on udaliaet 0 stroky iz 3; t.e bilo 0,1,2 stala 1,2 NO eto vajno kogda ti udalil 0 stroky to 1 stala 0 a vtoraia1,i pri sledushem v xode v cikl on opiat proveriaet kolvo elentov v cikle a ix uje 2 i 6echik "i" = 1 to on udalit 2 element iz listboxa. POniatno!!!!??? |
Автор: takedo 16.7.2006, 21:21 |
короче, в цикле: for (int i = 0; i < m_Choosed.GetCount(); i++) { m_Choosed.DeleteString(i); i=0;/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 } видимо это все. А если хочешь посмотреть чего происходит, задай в строках перед удалением строка1, строка2, строка3 и т.д. Сам все увидиш в дебагере. |
Автор: DeadSoul 16.7.2006, 21:49 |
takedo, во втором посте дан правильный ответ. На фига это флейм + некрасивый и неверный код? |
Автор: Rickert 17.7.2006, 04:49 |
Romikgy Спасибо! |
Автор: takedo 17.7.2006, 05:17 |
DeadSoul, ну да, во втором посте дан правильный код, только был и третий довольно таки увесистый. А на счет неверного кода - это зря, все работает, но не все знают, что так делать можно ![]() ![]() |
Автор: Romikgy 17.7.2006, 08:41 |
Rcikert, пжалста ![]() |