Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/88: Рейтинг темы: голосов - 88, средняя оценка - 4.76
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168

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

20.06.2009, 10:09. Показов 17982. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru