C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




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

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.