怎么取出放入Imagelist控件中的图标

怎样取出放入Imagelist控件中的图标
怎样取出放入Imagelist控件中的图标。原图标文件丢失。
怎么取出放入Imagelist控件中的图标
------解决方案--------------------
本帖最后由 dkfdtf 于 2014-02-28 20:21:16 编辑
引用:
夜猫版主,用win32api 怎样取出图标,一点都不会呀.

这个可以用 gdiplus 搞掂
在你存有 ImageList 的表单上加一个按钮,按钮 click 事件中贴入下列代码:
* -- 根据你的 ImageList 对象更改下面这行
m.oIml = Thisform.iml1

Declare Long GdiplusStartup In GDIPlus Long @, String @, Long @
Declare Long GdiplusShutdown In GDIPlus Long
Declare Long GdipCreateBitmapFromHICON In GDIPlus Long, Long @
Declare Long GdipSaveImageToFile In GDIPlus Long, String, String, Long
Declare Long GdipDisposeImage In GDIPlus Long

m.hTk = 0
m.nBuf = 0h01 + Replicate(Chr(0),15)
If 0 != GdiplusStartup(@m.hTk, @m.nBuf, 0)
    Messagebox('初始化 gdiplus 失败。', 16, '')
    Return
Endif

Clear
m.cEnc = 0h06F47C55041AD3119A730000F81EF32E
For m.ii = 1 To m.oIml.ListImages.Count
    m.hBmp = 0
    If 0 == GdipCreateBitmapFromHICON(m.oIml.ListImages(m.ii).ExtractIcon().Handle, @m.hBmp)
        m.cFile = Textmerge('c:\提取的图标<<m.ii>>.png')
        If 0 == GdipSaveImageToFile(m.hBmp, Strconv(m.cFile+Chr(0),5),m.cEnc,0)
            ? Textmerge('已保存图标 <<m.ii>> 到 <<m.cFile>>')
        Else
            ? Textmerge('!!! 保存图标 <<m.ii>> 失败。')
        Endif
        GdipDisposeImage(m.hBmp)
    Else
        ? '---- !!! 创建位图对象失败.'
    Endif
Endfor
GdiplusShutdown(m.hTk)

运行表单,点新加的按钮,然后到 c: 根目录上查看结果
如果是 Win7 以上系统,可能不允许直接保存文件到根目录,自己改一下 m.cFile = ... 这一行