purebasic.info
http://purebasic.info/phpBB3ex/

Как использовать функцию ExtractAssociatedIcon_()
http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=1173
Страница 1 из 2

Автор:  BaCo [ Ср май 12, 2010 10:15 am ]
Заголовок сообщения:  Как использовать функцию ExtractAssociatedIcon_()

Привет всем! Можете подсказать, как правильно использовать функцию ExtractAssociatedIcon_()?

Автор:  kvitaliy [ Ср май 12, 2010 12:13 pm ]
Заголовок сообщения: 

ExtractAssociatedIcon - мутная она какая то, вот есть почти аналогично работает:

Код:
1
2
3
4
5
6
7
8
If OpenWindow(0, 0, 0, 300, 300, "Аssociated icon",  #PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
 
    file$ = "С:\WINDOWS\win.ini"
    SHGetFileInfo_(file$, 0, @sh.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_TYPENAME|#SHGFI_SHELLICONSIZE|#SHGFI_SYSICONINDEX|#SHGFI_DISPLAYNAME|#SHGFI_ICON);|#SHGFI_SMALLICON) или маленькая иконка
    ImageGadget(0, 0, 0, 64, 64, sh\hIcon)
    Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
 
EndIf


Автор:  BaCo [ Ср май 12, 2010 12:21 pm ]
Заголовок сообщения: 

Огромное спасибо!!! Как раз то, что нужно!

Автор:  kvitaliy [ Ср май 12, 2010 1:02 pm ]
Заголовок сообщения: 

Собственно и с ExtractAssociatedIcon разобрался, так что если надо то можно и это использовать.

Код:
1
2
3
4
5
6
7
8
9
10
If OpenWindow(0, 0, 0, 300, 300, "Аssociated icon",  #PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
file$ = "c:\WINDOWS\Паркет.bmp"
hInstance = GetModuleHandle_(0)
i=1
hIco=ExtractAssociatedIcon_(hInstance, @file$, @i)
ImageGadget(0, 0, 0, 64, 64,hIco )
CloseLibrary(0)
 Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
;  
 EndIf



А не получалось потому, что последний параметр записывал напрямую числом, а этой функции нужен указатель на переменную. В общем, пришлось читать инструкцию :D

Автор:  qpAHToMAS [ Ср май 12, 2010 1:14 pm ]
Заголовок сообщения: 

Удобнейшая функция! Можно смело писать какой-нибудь заменитель иконок...

Автор:  Пётр [ Ср май 12, 2010 1:31 pm ]
Заголовок сообщения: 

kvitaliy писал(а):
CloseLibrary(0)
Это зачем?

Автор:  kvitaliy [ Ср май 12, 2010 1:45 pm ]
Заголовок сообщения: 

Пётр писал(а):
Это зачем?


Рудимент, остался от пробного кода -

Код:
1
2
3
4
OpenLibrary(0,"shell32.dll")
hInstance = GetModuleHandle_(0)
i=1
hIco=CallFunction(0,"ExtractAssociatedIconA",hInstance, @file$, @i)



Люблю эксперименты с исходным материалом :)

Автор:  Пётр [ Ср май 12, 2010 1:54 pm ]
Заголовок сообщения: 

kvitaliy писал(а):
CallFunction
в 4.4х эта функция глючит! :(

Автор:  BaCo [ Ср май 12, 2010 2:24 pm ]
Заголовок сообщения: 

Цитата:
Собственно и с ExtractAssociatedIcon разобрался, так что если надо то можно и это использовать.

Объясните пожалуйста, зачем ставить @ перед переменными? И чем отличаются та функция, которую вы мне в первый раз предложили от этой?

Автор:  Пётр [ Ср май 12, 2010 2:56 pm ]
Заголовок сообщения: 

BaCo писал(а):
Объясните пожалуйста, зачем ставить @ перед переменными
Чтобы получить указатель на неё, т. к. в данном случае, нужны не данные из переменной а адрес переменной в памяти компа.
Вот читай http://pure-basic.narod.ru/docs/point.html

Автор:  BaCo [ Ср май 12, 2010 3:09 pm ]
Заголовок сообщения: 

Цитата:
Чтобы получить указатель на неё

Понятно. Спасибо!

Автор:  newJS [ Вт мар 06, 2018 11:52 am ]
Заголовок сообщения:  Re: Как использовать функцию ExtractAssociatedIcon_()

BaCo писал(а):
А не получалось потому, что последний параметр записывал напрямую числом, а этой функции нужен указатель на переменную. В общем, пришлось читать инструкцию :D

ага, Соковников такого понаписал, у меня не получилось дешефрировать его перевод :D
тоже напрямую индекс нужной иконки давал :(


а как получить саму картинку чтобы работать с ней средствами РВ? ибо РВ ругается на то что функция возвращает

Автор:  kvitaliy [ Вт мар 06, 2018 1:10 pm ]
Заголовок сообщения:  Re: Как использовать функцию ExtractAssociatedIcon_()

newJS писал(а):
а как получить саму картинку чтобы работать с ней средствами РВ? ибо РВ ругается на то что функция возвращает


Возвращается ImageID.
Создай сам картинку и нарисуй на ней это изображение.
Код:
1
2
3
4
5
 
CreateImage(0,64,64,32,#PB_Image_Transparent )
StartDrawing( ImageOutput(0))
DrawImage(hIco,0,0)
StopDrawing()


Автор:  newJS [ Ср мар 07, 2018 2:57 am ]
Заголовок сообщения:  Re: Как использовать функцию ExtractAssociatedIcon_()

kvitaliy писал(а):
Возвращается ImageID.
Создай сам картинку и нарисуй на ней это изображение.

А размеры откуда взять? размеры полученной картинки из ExtractAssociatedIcon_()

и растолкуй как этим воспользоваться в данном случае
StretchBlt_()
не могу понять что ей надо, всегда ноль возвращает

Автор:  Пётр [ Ср мар 07, 2018 1:26 pm ]
Заголовок сообщения:  Re: Как использовать функцию ExtractAssociatedIcon_()

newJS писал(а):
не могу понять что ей надо, всегда ноль возвращает
GetLastError_()

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/