Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> List Box, VC++ 
:(
    Опции темы
Goldberg
Дата 6.7.2004, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 3.6.2004

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



Здраствуйте, я недавно начал изучать VC++, ну и чтобы ускорить процесс, скачиваю различные исходники, разбираюсь в них, изменяю...
Скачал вот этот исходник: http://www.sources.ru/cpp/cpp_cdirtreectrl_browser.shtml
И вот собственно вопрос:
Имеется класс CDirTreeCtrl, у него функция:
Код
void CDirTreeCtrl::ExpandBranch(HTREEITEM parent)
{
   bool bOne=false;

  if(parent==m_drives_root)
  {
     char *ptr;

      DeleteAllChild(parent,false);
     GetLogicalDriveStrings(500,m_drives_name);

     ptr=m_drives_name;

     while (*ptr)
     {
           bOne=true;
        AddItem(ptr, m_drives_root, true);
        ptr+=strlen(ptr)+1;
     }
  }
  else
  {
       CString fullpath,pathWildcard;

       fullpath=GetPathFromHere(fullpath, parent);
       DeleteAllChild(parent,false);
       pathWildcard=fullpath+"*.*";

       CFileFind finder;
       BOOL bWorking = finder.FindFile(pathWildcard);
       while (bWorking)
           {
           bWorking = finder.FindNextFile();
           if ( finder.IsDirectory() && !finder.IsDots() )
               {
               bOne=true;
               HTREEITEM itm=AddItem (fullpath+finder.GetFileName(), parent );
               InsertItem("",itm);
               }
           }
       
       bWorking = finder.FindFile(pathWildcard);
       while (bWorking)
           {
           bWorking = finder.FindNextFile();
           if ( !finder.IsDirectory() && MatchExtension(finder.GetFileName()) )
               {
               bOne=true;
               AddItem (fullpath+finder.GetFileName(), parent );
               }
           }

  }
   
   if (!bOne) InsertItem( "",parent);
}

Здесь дерево заполняется списком папок и файлов, я решил изменить функцию так, чтобы в дерево заносились только папки, а файлы в List Control.
Делаю так:
Создаю для List Control класс - class CListF : public CListCtrl
Затем в выше приведенную функцию изменяю:
Код
void CDirTreeCtrl::ExpandBranch(HTREEITEM parent)
{
   bool bOne=false;
   int coun = 1; //ОБЪЯВЛЯЮ СЧЕТЧИК
  if(parent==m_drives_root)
  {
     char *ptr;

      DeleteAllChild(parent,false);
     GetLogicalDriveStrings(500,m_drives_name);

     ptr=m_drives_name;

     while (*ptr)
     {
           bOne=true;
        AddItem(ptr, m_drives_root, true);
        ptr+=strlen(ptr)+1;
     }
  }
  else
  {
       CString fullpath,pathWildcard;

       fullpath=GetPathFromHere(fullpath, parent);
       DeleteAllChild(parent,false);
       pathWildcard=fullpath+"*.*";

       CFileFind finder;
       BOOL bWorking = finder.FindFile(pathWildcard);
       while (bWorking)
           {
           bWorking = finder.FindNextFile();
           if ( finder.IsDirectory() && !finder.IsDots() )
               {
               bOne=true;
               HTREEITEM itm=AddItem (fullpath+finder.GetFileName(), parent );
               InsertItem("",itm);
               }
           }
       
       bWorking = finder.FindFile(pathWildcard);
       while (bWorking)
           {
           bWorking = finder.FindNextFile();
           if ( !finder.IsDirectory() && MatchExtension(finder.GetFileName()) )
               {
               bOne=true;
               //ДАЛЕЕ ИЗМЕНЯЮ
               CListF* lf;
               coun = coun +1;
               lf->InsertItem(coun, fullpath+finder.GetFileName());
               //AddItem (fullpath+finder.GetFileName(), parent );
               }
           }

  }
   
   if (!bOne) InsertItem( "",parent);
}

Говорит - Unhandled exception in PC_Browser.exe
--------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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