Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
CTreeListCtrl: Простейший TreeView с колонкамиСреда разработки: VC6, NT4 SP3, Comctl32.dll 4.72.3110.1 Как вставить CTreeListCtrl в свой проект?Для этого достаточно проделать два простых шага:
Теперь всё готово для его использования. Использование CTreeListCtrlДопустим в Вашем разделе жёсткого диска имеется две директории: Program Files и Winnt. В Program Files содержатся ещё три папки: Microsoft Office, Microsoft Visual Studio и InstallShield. В Winnt содержатся две папки: profiles и system32, а в папке profiles содержатся All Users, Administrator и Davidc. Порядок добавления элементов в дерево будет следующим:
А теперь давайте рассмотрим основные шаги использования такого дерева:
Далее представлен код, создающий дерево, которое изображено на рисунке. // Первый шаг: Создание окна. 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]); } Пример приложенияПриложение, для которого потребовалось такое дерево, это программа, которая исследует логический диск на предмет наличия директорий и показывает размер каждой директории. После получения такой информации очень легко почистить свой винчестер от ненужного хлама. Скриншот этого приложения: Файлы |
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|