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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


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

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



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

CTreeListCtrl: Простейший TreeView с колонками


Автор: David Carballo.

Среда разработки: VC6, NT4 SP3, Comctl32.dll 4.72.3110.1

Как вставить CTreeListCtrl в свой проект?

Для этого достаточно проделать два простых шага:

  1. Добавьте файлы CTreeListCtrl.h и CTreeListCtrl.cpp в свой проект.
  2. Импортируйте State.bmp как ресурс и присвойте ему идентификатор IDB_STATE.

Теперь всё готово для его использования.

Использование CTreeListCtrl

Допустим в Вашем разделе жёсткого диска имеется две директории: Program Files и Winnt. В Program Files содержатся ещё три папки: Microsoft Office, Microsoft Visual Studio и InstallShield. В Winnt содержатся две папки: profiles и system32, а в папке profiles содержатся All Users, Administrator и Davidc. Порядок добавления элементов в дерево будет следующим:

  1. C:\
  2. Program Files
  3. Microsoft Office
  4. Microsoft Visual Studio
  5. InstallShield
  6. Winnt
  7. profiles
  8. All Users
  9. Administrator
  10. system32

А теперь давайте рассмотрим основные шаги использования такого дерева:

  1. Объявляем переменную член (m_tree) в классе родительского окна.
  2. В функции-обработчике события WM_CREATE или WM_INITDIALOG создайте окно дерева. Так же можно его использовать через DDX_Control.
  3. Добавьте столько столбцов, сколько необходимо.
  4. Создайте список картинок (image list) для этого элемента управления.
  5. Для добавления элементов дерева используйте функцию AddItem, устанавливая тем самым их уровень, а затем вызывайте SetItemText для каждой колонки.

Далее представлен код, создающий дерево, которое изображено на рисунке.


 
 // Первый шаг: Создание окна.
 
 m_tree.Create
   (
   WS_BORDER | WS_CHILD | WS_VISIBLE | LVS_REPORT |
    LVS_SINGLESEL | LVS_SHOWSELALWAYS,
   CRect(12, 12, 288, 228),
   this,
   0x100
   );
 
 
 // Второй шаг: вставляем два столбца: имя папки и размер папки
 
 LVCOLUMN   column;
 
 column.mask  = LVCF_FMT | LVCF_IMAGE | LVCF_TEXT | LVCF_WIDTH;
 
 column.fmt      = LVCFMT_LEFT;
 column.cx       = 200;
 column.pszText  = _T("Folder");
 column.iSubItem = 0;
 m_tree.InsertColumn(0, &column);
 
 column.fmt      = LVCFMT_RIGHT;
 column.cx       = 75;
 column.pszText  = _T("Size");
 column.iSubItem = 1;
 m_tree.InsertColumn(1, &column);
 
 
 // Третий шаг: создаём и заполняем список картинок (image list)
 
 m_il.Create(IDB_FOLDERS, 16, 1, RGB(255, 0, 255));
 m_tree.SetImageList(&m_il, LVSIL_SMALL);
 
 
 // Четвёртый шаг: Заполняем содержимое дерева.
 
 CString  asFolders[] =
       {
       "C:", "Program Files", "Microsoft Office",
       "Microsoft Visual Studio", "InstallShield",
       "Winnt", "profiles", "All Users", "Administrator" ,
       "system32"
       };
 
 CString  asSizes[]=
       { "100", "60", "10", "20", "30", "40", "5",
         "2", "1" , "35"
       };
 int      anLevels[] = { 0, 1, 2, 2, 2, 1, 2, 3, 3, 2 };
 
 for (int i = 0; i < sizeof(asFolders) /
                    sizeof(asFolders[0]); i++)
 {
   int iItem;
   iItem = m_tree.AddItem(asFolders[i], i % 3, anLevels[i]);
   m_tree.SetItemText(iItem, 1, asSizes[i]);
 }
 

Пример приложения

Приложение, для которого потребовалось такое дерево, это программа, которая исследует логический диск на предмет наличия директорий и показывает размер каждой директории. После получения такой информации очень легко почистить свой винчестер от ненужного хлама.

Скриншот этого приложения:

Downloads

Приложение CheckDirectorySizes - 116 KB
Скачать демонстрационный проект - 13.4 Kb
Скачать исходник - 3.44 Kb

 



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

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




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



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


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