Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Visual C++.NET
Урок 27. Пробегаем все элементы списка

На прошлом уроке мы с вами посмотрели, как можно добавлять элементы в список типа CPtrList. Но мы не видели конкретного результата, что что-то там добавлялось - так как список потом никуда не выводился. Исправим это. А именно, наш список будет выводится в виде последовательности MessageBox'ов - по одному MessageBox'у на каждый узел. В каждом MessageBox'е будет показываться содержимое узла - а именно его переменные m_Data1 и m_Data2.

Вот код:

CMyClass *p;
 
   CString s;
 
   //Берем начальную позицию списка.
 
   POSITION pos = m_list.GetHeadPosition();
 
   //Пробегаем весь список.
 
   while(pos!=NULL)
 
   {
 
     //Приводим полученный узел списка
 
     //к типу CMyClass *.
 
     p = (CMyClass *)m_list.GetNext(pos);
 
     //Формируем и показываем MessageBox.
 
     s.Format("%d, %d", p->m_Data1, p->m_Data2);
 
     AfxMessageBox(s);
 
   }

Указанный фрагмент можно поместить, например, в некотором пункте меню.

Обратите внимание, что, так как в списке хранятся указатели типа void, то мы для получения реального узла должны делать приведение типов:

    ....
 
     p = (CMyClass *)m_list.GetNext(pos);
 
     ...

Разумеется, что приведенный фрагмент надо пометить в коде класса документа (так как именно в этом классе мы объявили наш список:CPtrList m_list;

CPtrList m_list;

Если же, например, код поместить в классе Вида, то надо использовать доступ к документу через метод GetDocument.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS