Salut a tous,
je voudrais savoir comment utiliser une icone de shell32.dll, celle avec beaucoup d'icones de windows
merci d'avance
Utiliser icone des dll
faut passer pes les fonctions de l'API win32 certainement (c'est même sûr)
peut être avec une fonction du genre "LoadImage"
http://msdn2.microsoft.com/en-us/library/ms648045.aspx
http://msdn2.microsoft.com/en-us/library/aa920739.aspx
peut être avec une fonction du genre "LoadImage"
http://msdn2.microsoft.com/en-us/library/ms648045.aspx
http://msdn2.microsoft.com/en-us/library/aa920739.aspx
Code : Tout sélectionner
; Idea from Rikuk
; File specifies the File where Icon is extracted
; Icon = 0 To ? --> Return handle of Image
; Icon = -1 --> Return the count of Icon
Procedure IconExtract(File.s,Icon.l)
ProcedureReturn ExtractIcon_(0,File,Icon)
EndProcedure
;/ Test
#file="C:\WINDOWS\explorer.exe"
Count=IconExtract(#file,-1)
OpenWindow(0,0,0,130,70,Str(Count)+" Icons",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonImageGadget(0,10,10,48,48,IconExtract(#file,pointer))
TextGadget(1,80,30,40,20,"n° 1")
Repeat
event=WaitWindowEvent()
If event= #PB_Event_Gadget And EventGadget()=0 And EventType()=#PB_EventType_LeftClick
pointer+1
If pointer=Count : pointer=0 : EndIf
SetGadgetState(0,IconExtract(#file,pointer))
SetGadgetText(1,"n° "+Str(pointer+1))
EndIf
Until event=#PB_Event_CloseWindow
bonjour,
petite modification
avec openfilerequester()
@++
petite modification

Code : Tout sélectionner
; Idea from Rikuk
; File specifies the File where Icon is extracted
; Icon = 0 To ? --> Return handle of Image
; Icon = -1 --> Return the count of Icon
Procedure IconExtract(File.s,Icon.l)
ProcedureReturn ExtractIcon_(0,File,Icon)
EndProcedure
fichier$ = OpenFileRequester("ouvrir fichier icone","","Fichier|*.*",0)
;/ Test
Count=IconExtract(fichier$,-1)
OpenWindow(0,0,0,130,80,Str(Count)+" Icons",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonImageGadget(0,10,10,48,48,IconExtract(fichier$,pointer))
TextGadget(1,80,30,40,20,"n° 1")
TextGadget(2,10,60,130,20,GetFilePart(fichier$))
Repeat
event=WaitWindowEvent()
If event= #PB_Event_Gadget And EventGadget()=0 And EventType()=#PB_EventType_LeftClick
pointer+1
If pointer=Count : pointer=0 : EndIf
SetGadgetState(0,IconExtract(fichier$,pointer))
SetGadgetText(1,"n° "+Str(pointer+1))
EndIf
Until event=#PB_Event_CloseWindow
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz