Utiliser icone des dll

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Utiliser icone des dll

Message par lepiaf31 »

Salut a tous,
je voudrais savoir comment utiliser une icone de shell32.dll, celle avec beaucoup d'icones de windows
merci d'avance
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

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
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

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
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bonjour,

petite modification :D avec openfilerequester()

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
Répondre