Вопрос № 99593: Искал как можно рисовать на форме иконки файлов, папок, дисков (как в Windows) нашел функцию SHGetFileInfo. Использую так:
(1) hImage = SHGetFileInfo(Tg(i).Path, ByVal 0&, udtFI, Len(udtFI), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
(2) ImageLi...
Вопрос № 99.593
Искал как можно рисовать на форме иконки файлов, папок, дисков (как в Windows) нашел функцию SHGetFileInfo. Использую так:
(1) hImage = SHGetFileInfo(Tg(i).Path, ByVal 0&, udtFI, Len(udtFI), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
(2) ImageList_Draw hImage, udtFI.iIcon, Form1.hdc, Tg(i).PosX, Tg(i).PosY, ILD_TRANSPARENT
Все работает - рисует, но откомпиллированная программа начинает жрать памяти где-то на 1,2 mb больше (еще и виртуальной где-то 600 кб). Закомментировав строку (1) и скомпилировав вновь - все нормально. Попробовал так:
DestroyIcon hImage ' - ничем не помагло. Помогите, я просто не понимаю почему так и что делать, вроде рисует на форме, поверх уже нарисованного, куда деются ресурсы?
Отправлен: 24.08.2007, 23:28
Вопрос задал: Adisan (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 7)
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Adisan!
Попоробуйте использовать АПИ-функции LoadIcon, LoadImage, DrawIcon, DrawIconEx (особенно ее) (все они есть в стандартном АПИ-вьюере, поставляемом с бейсиком).
Почитайте по следующим ссылкам:
http://www.vbnet.ru/forum/show.aspx?id=53427&page=5
http://support.microsoft.com/kb/298144/ru
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/WindowsAPI/Control/436.mspx
--------- Учиться никогда не поздно. Особенно программированию!