voici un code du soldat inconnu qui extrait les icones aux formats 16*16 et 32* 32. Mais je voudrais que ce code utilise le format 48*48
Merci pour votre aide
Code : Tout sélectionner
; Auteur : Denis - Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer l'icône au format 16*16 ou 32*32 associé à un fichier ou à un dossier.
Procedure.l ExtractSmallIconFile(IconPath.s)
; Cette procedure permet d'extraire l'ID de l'icône 16*16 associé au type de fichier ou au dossier dont l'adresse est IconPath
SHGetFileInfo_(IconPath, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_SMALLICON)
ProcedureReturn InfosFile\hIcon
EndProcedure
Procedure.l ExtractLargeIconFile(IconPath.s)
; Cette procedure permet d'extraire l'ID de l'icône 32*32 associé au type de fichier ou au dossier dont l'adresse est IconPath
SHGetFileInfo_(IconPath, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_LARGEICON)
ProcedureReturn InfosFile\hIcon
EndProcedure
;- Exemple de chargement d'image
Procedure Open_Window()
If OpenWindow(0, 0, 0, 200, 130, "Test - Icône", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(2, 5, 5, 190, 25, "Ouvrir un fichier")
ImageGadget(0, 92, 45, 16, 16, ExtractSmallIconFile("C:\")) ; Affiche l'icône au format 16 * 16 de "C:\"
ImageGadget(1, 84, 70, 32, 32, ExtractLargeIconFile("C:\")) ; Affiche l'icône au format 32 * 32 de "C:\"
EndIf
EndIf
EndProcedure
Procedure bouton()
Filtre$ = "Texte (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 2 ; utiliser par défaut le premier des trois filtres possibles
IconPath.s = OpenFileRequester("", "c:\", "Tous les fichiers|*.*", 0)
If IconPath <> ""
SetGadgetState(0, ExtractSmallIconFile(IconPath)) ; On change l'image
SetGadgetState(1, ExtractLargeIconFile(IconPath))
;SaveFileRequester("Choisissez un fichier à sauvegarder",Str(ExtractLargeIconFile(IconPath)), Filtre$, Filtre)
EndIf
EndProcedure
;- Debut du programme
Open_Window()
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
Select EventGadget() ; boutons, zone de texte, ...
Case 2
bouton() ; Si on souhaite ouvrir un fichier
EndSelect
EndIf
Until event = #PB_Event_CloseWindow
End