Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB6
Expertise: Advanced
Jun 5, 1999

LoadImageList - Reload the images in an ImageList control

Private Declare Function ImageList_ReplaceIcon Lib "COMCTL32" (ByVal hImageList _
    As Long, ByVal i As Long, ByVal hIcon As Long) As Long

' Load a set of images from a disk file to a ImageList control
' The file must have been saved using the SaveImageList control, and the
' target ImageList control must contain enough images in its 
' ListImage collection.

Public Sub LoadImageList(ImageList As ImageList, ByVal FileName As String)
    Dim pb As New PropertyBag
    Dim varTemp As Variant
    Dim handle As Long
    Dim Li As ListImage
    Dim ImgLocal As Object   ' can use early binding here!
    
    ' Error "File not found" if the file doesn't exisit
    If Len(Dir$(FileName)) = 0 Then Err.Raise 53
    
    ' Open the file and read its contents
    handle = FreeFile
    Open FileName For Binary As #handle
    Get #handle, , varTemp
    Close #handle
    
    ' rebuild the property bag object
    pb.Contents = varTemp
    ' create a temporary ImageList control that isn't sited on any form
    Set ImgLocal = pb.ReadProperty("IMG")
    
    ' because we can't clear the ListImage collection of the target
    ' ImageList control if the control is bound to any other control,
    ' the only way to move the images from the temporary ImageList to
    ' the target ImageList is using the ImageList_ReplaceIcon API
    For Each Li In ImgLocal.ListImages
        ImageList_ReplaceIcon ImageList.hImageList, Li.Index - 1, _
            Li.Picture.handle
    Next
End Sub
Luigi Intonti
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date