LoadImageList – Reload the images in an ImageList control

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    NextEnd Sub

See also  Redefining Energy Management: Advanced Solutions for Modern Buildings

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist