Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168

Как загрузить в ListView системные иконки?

20.06.2009, 10:09. Показов 17994. Ответов 79
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здраствуите!!
нужна маленькая помощь.
Хочу в ListView прибавить к моему списку системные иконки ,ну что бы отображал что это папка или файл .
Есть ли такая функция и как ее прибавить ?
Весь код показывать своего менеджера файлового не буду ,только по работе с ListView
Лист и все остольные кнопки и окна делались не CreateWindow а конструктором VC2008

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
void FindFile(HWND hList,HWND hStaticTmp){//Сюда передается откуда считываеться путьи в какои лист передовать список 
 
    SendMessage(hList, LVM_DELETEALLITEMS, (WPARAM)0,(LPARAM)0);  
    i=-1;
    wchar_t buf [MAX_PATH]={0};
    wchar_t bufLB [MAX_PATH]={0};
    wchar_t buf1[]=L"*\0";
 
    GetWindowText(hStaticTmp,buf,MAX_PATH);
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;
 
 
    wcscat(buf,buf1);
    hFind = FindFirstFileW(buf, &FindFileData);
 
    if (hFind == INVALID_HANDLE_VALUE){
        MessageBox(0,L"Ошибка", L"Ненаиден",  MB_OK |MB_ICONWARNING);
    } 
    else 
    {
        do {
            Viev_List(FindFileData.cFileName,hList,i);//заполняет список листа
 
            ++i;
        } while (FindNextFile(hFind, &FindFileData) != 0);
 
        FindClose(hFind); 
 
        InitListViewImageLists(hList);//загрузка иконок
    }
 
}
void Viev_List( wchar_t buf[],HWND hList,int i){//заполняет список листа
    lvItem.mask = LVIF_TEXT|LVIF_IMAGE| LVIF_PARAM ;
    lvItem.state = 0;
    lvItem.stateMask = 0;
    lvItem.iItem = i;
    lvItem.iImage=0;
    lvItem.iSubItem = 0;
    lvItem.pszText =buf;    
    lvItem.cchTextMax = wcslen (buf);
    ListView_InsertItem(hList, &lvItem);
    //InitListViewImageLists(hList);
}
}
BOOL InitListViewImageLists(HWND hWndListView) //загрузка иконок
{ 
    HICON hiconItem;     // icon for list-view items 
    HIMAGELIST hLarge;   // image list for icon view 
    HIMAGELIST hSmall;   // image list for other views 
 
    // Create the full-sized icon image lists. 
    hLarge = ImageList_Create(GetSystemMetrics(SM_CXICON), 
        GetSystemMetrics(SM_CYICON), 
        ILC_MASK, 1, 1); 
 
    hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), 
        GetSystemMetrics(SM_CYSMICON), 
        ILC_MASK, 1, 1); 
 
    // Add an icon to each image list.  
    hiconItem = LoadIcon(g_hinst,MAKEINTRESOURCE(IDI_WINLOGO)); 
    ImageList_AddIcon(hLarge, hiconItem); 
    ImageList_AddIcon(hSmall, hiconItem); 
    DestroyIcon(hiconItem); 
    //тут не понятен мне цыкл откуда бурется C_ICONS.
    /************************************************************************
    Usually you have multiple icons; therefore, the previous four lines of 
    code can be inside a loop. The following code shows such a loop. The 
    icons are defined in the application's header file as resources, which 
    are numbered consecutively starting with IDS_FIRSTICON. The number of 
    icons is defined in the header file as C_ICONS.
 
    for(index = 0; index < C_ICONS; index++)
    {
    hIconItem = LoadIcon (g_hinst, MAKEINTRESOURCE(IDS_FIRSTICON + index));
    ImageList_AddIcon(hSmall, hIconItem);
    ImageList_AddIcon(hLarge, hIconItem);
    Destroy(hIconItem);
    }
    ************************************************************************/
 
 
 
 
    //Assign the image lists to the list-view control. 
    ListView_SetImageList(hWndListView, hLarge, LVSIL_NORMAL); 
    ListView_SetImageList(hWndListView, hSmall, LVSIL_SMALL); 
 
    return TRUE; 
}
Зарание спосибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2009, 10:09
Ответы с готовыми решениями:

ListView и иконки у некоторых строк
Есть ListView, создал список иконок. Для всех строк списка получилось вывести иконки, а мне нужно для некоторых строк выводить иконку, а...

Как сделать 2 иконки в ListView?
Доброго времени суток уважаемые форумчане. У меня есть расширенный контрол AeroListView в виде таблицы, который унаследован от обычного...

Как добавить иконки в ListView
Нужно добыть иконки процессов, запущеных Шындоус и поместить их в Listview. Делаю так: procedure GetProcessList; var hSnapShot:...

79
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:29  [ТС]
Студворк — интернет-сервис помощи студентам
это я нашел , описали типа у меня по старому а по новому отдельно создаешь char и потом присваеваешь auto знаешь зачем это ???
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:29
что такое атрибут А у файла?
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:29  [ТС]
алилуя, ну как тебе ????
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:30
Цитата Сообщение от Casper! Посмотреть сообщение
это я нашел , описали типа у меня по старому а по новому отдельно создаешь char и потом присваеваешь auto знаешь зачем это ???
зачем auto без понятия
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:31  [ТС]
надо читать в мсдне атрибуты я уже не помню
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:33
Цитата Сообщение от Casper! Посмотреть сообщение
надо читать в мсдне атрибуты я уже не помню
А это архивный, я немного затупил)
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:40  [ТС]
Ключевое слово auto

Судьбу этого ключевого слово можно сравнить с goto: с одной стороны - в языке есть, с другой - его не используют. Но в случае с auto всё проще. Хотя его и можно использовать для объявления локальных переменных, но смысла в этом нет, так как все локальные переменные по умолчанию считаются автоматическими. Поэтому на практике это ключевое слово не используется. Есть мнение что ключевое слово auto включили в язык С для совместимости с языком B ну а потом оно перекочевало и в С++
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:41
Casper!, В самом низу Вашей программы есть, скажем пункт, в котором должна описываться информация о дисках, но там пусто.
Это так и должно быть? И еще кнопка "Файл" -> "Выход" не работает, а еще нельзя изменить аттрибуты папкам. Это тоже так должно быть или это баг?

Добавлено через 42 секунды
Цитата Сообщение от Casper! Посмотреть сообщение
для совместимости с языком B
первый раз слышу про такой язык
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:42  [ТС]
ну впринципе я понял что за ошубку у тебя выбевало , вернее почему .
Как тебе ФМ?
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:44
Цитата Сообщение от Casper! Посмотреть сообщение
Как тебе ФМ
Класс!
Цитата Сообщение от Casper! Посмотреть сообщение
ну впринципе я понял что за ошубку у тебя выбевало , вернее почему .
это Вы про пустоту вместо информации про диск?
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:45  [ТС]
о дисках я код не вставил , он отдельно где то лежит , выход помоиму не реализован .

http://ru.wikipedia.org/wiki/%... 0%B8%D1%8F)
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:45
кстати я заметил что размер некоторых папок ФМ показывает 0 хотя там далеко не 0
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:47  [ТС]
нет про auto я понял почему выбивало, но это лишь догадки

Добавлено через 1 минуту
там прикол немножко геморны надо писать код на то чтобы он прочесал еще папки ,папки в папках во , как то так , ты сравни 2 версии что я скидывал , может в какои-то и работает
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:47
Цитата Сообщение от Casper! Посмотреть сообщение
нет про auto я понял почему выбивало, но это лишь догадки
а как поступить с дисками? почему вместо инфы про них пусто?
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
19.02.2014, 00:49  [ТС]
все я спать , всем пока

Добавлено через 31 секунду
можешь дописать с дисками ,там легко .
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
19.02.2014, 00:52
Цитата Сообщение от Casper! Посмотреть сообщение
все я спать , всем пока
спок) я тож пошёл)

Добавлено через 2 минуты
Casper!, между Manager Final 1 и Manager Final разницы не заметил, по крайней мере внешней, в код не смотрел, обе не показывают инфу про диск, обе могут изменять атрибуты папок и обе некоторым папкам показывают размер 0 вместо совсем не 0
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
20.02.2014, 23:13
Casper!, вобщем я посмотрел Ваш код, поклацал кнопочки в программе и кое-что не понял.
Довольно много файлов и папок отображаются в Вашем ФМ с недоступными для редактирования атрибутами, а также не перемещаются, не копируются, не переименовываются, и не удаляются, причём атрибуты с остальным никак не связаны. Например у папки можна изменить атрибуты, но нельзя скопировать или наоборот.
Также у большинства файлов и папок размер показан нулевым.

Добавлено через 3 минуты
Иногда ФМ копирует папку рядом, а иногда внутрь.
Например в корне диска С есть папка "йцу", он может при нажатии копировать скопировать папку и назвать папку "йцу - копия" и положить её туда же в корень, а может папку "йцу" скопировать в саму папку "йцу".

Добавлено через 6 минут
Не везёт что-то мне на студии
В срр файле есть кусочек вида (без фигурных скобок)
C
1
2
3
4
if (//условие)
//чтото делается
else if (//условие)
//чтото делается
и код компилируется нормально, если я добавлю скобочки
C
1
2
3
4
5
6
7
8
9
10
11
if (//условие)
{
//чтото делается
}
else
{
if (//условие)
{
//чтото делается
}
}
то студия выдаёт ошибку что для else должен быть парный if
Кароч бред!
И это я поставил 2008 про.
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
21.02.2014, 03:03
Логическая триада
C++
1
2
3
if (){}
else if (){}
else{}
и никакого бреда.
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
21.02.2014, 11:42
Цитата Сообщение от Digit@ll Посмотреть сообщение
Логическая триада
без последнего ифа оно будет работать?
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
02.05.2014, 16:57
Casper!, ну вобщем я переделал Ваш код как мне нужно было, осталась только одна проблемка: при подключении флешки, список дисков в комбобоксе не обновляется, как это исправить? Проект прилагается)
Вложения
Тип файла: 7z Manager Final.7z (92.3 Кб, 28 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2014, 16:57

TreeView и системные иконки
Компилировал на win7 отображались системные иконки дисков, сейчас на хр скомпилировал - пусто. В чём может быть причина ? function...

Как создать и загрузить несколько размеров одной и той же иконки приложения?
Здравствуйте:) Как я понял, для корректного отображения иконки при всех размерах значков, необходимо создать набор иконок из всех...

Системные иконки на своих кнопках
Всем привет! В своей программе я отключаю отображение заголовка окна и системных кнопок (закрыть, свернуть, развернуть). При этом делаю...

Как при загрузке иконки из файла ресурсов указать какой именно размер надо загрузить?
У файле ресурсов есть иконка из тремя изображениями (16*16, 32*32, 48*48). Как при загрузке иконки из файла ресурсов указать какой именно...

Как при записи названий файлов в ListView, поставить их иконки рядом по расширению форматом 16х16?
Как при записи названий файлов в ListView, поставить их иконки рядом по расширению форматом 16х16. А то я раньше делал то иконки залетали...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Опции темы

Новые блоги и статьи
Жара жесть.
kumehtar 18.08.2026
Пролетают летом дни Тридцать пять жары в тени. Каждый август год от года Дарит жаркую погоду.
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru