怎么取出放入Imagelist控件中的图标
怎样取出放入Imagelist控件中的图标
怎样取出放入Imagelist控件中的图标。原图标文件丢失。

------解决方案--------------------
这个可以用 gdiplus 搞掂
在你存有 ImageList 的表单上加一个按钮,按钮 click 事件中贴入下列代码:
运行表单,点新加的按钮,然后到 c: 根目录上查看结果
如果是 Win7 以上系统,可能不允许直接保存文件到根目录,自己改一下 m.cFile = ... 这一行
怎样取出放入Imagelist控件中的图标。原图标文件丢失。
------解决方案--------------------
这个可以用 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 = ... 这一行