请教高手关于 SHGetFileInfo函数的一个问题 ( 积分: 100 )

  • 主题发起人 主题发起人 lrrymx
  • 开始时间 开始时间
L

lrrymx

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Delphi中用ListView控件来显示文件的windows图标,而获取windows图标的方法是通过调用Windows Api函数 SHGetFileInfo来实现,但我在调用过程中发现,第一次调用这个函数时,一个文件竟然有五个图标,而第二次调用则正常.以下是程序源码,请高手指教:<br>var SHFileInfo :TSHFileInfo;<br><br>begin<br> &nbsp;ListView1.SmallImage:=TImageList.CreatSize(16,16);<br> &nbsp;ListView1.SmallIMage.ShareImage:=True;<br> &nbsp;ListView1.SmallImage.Handle:=SHGetFileInfo'c:/a.bmp',0,SHFileInfo,<br> &nbsp;SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_DISPAYNAME);<br> &nbsp;Showmessage(IntToStr(ListView1.SmallImage.count)); &nbsp;//显示为5<br>end;<br> &nbsp;不知这段程序错在那里,请高手指正.谢谢!
 
我在Delphi中用ListView控件来显示文件的windows图标,而获取windows图标的方法是通过调用Windows Api函数 SHGetFileInfo来实现,但我在调用过程中发现,第一次调用这个函数时,一个文件竟然有五个图标,而第二次调用则正常.以下是程序源码,请高手指教:<br>var SHFileInfo :TSHFileInfo;<br><br>begin<br> &nbsp;ListView1.SmallImage:=TImageList.CreatSize(16,16);<br> &nbsp;ListView1.SmallIMage.ShareImage:=True;<br> &nbsp;ListView1.SmallImage.Handle:=SHGetFileInfo'c:/a.bmp',0,SHFileInfo,<br> &nbsp;SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_DISPAYNAME);<br> &nbsp;Showmessage(IntToStr(ListView1.SmallImage.count)); &nbsp;//显示为5<br>end;<br> &nbsp;不知这段程序错在那里,请高手指正.谢谢!
 
会不会是5个size不同的图标?比如,16x16/32x32/64x64,不过好像也凑不齐5个,呵呵。关注下。
 
对了,你用SmallImage.SaveToFile方法吧获取的图标存出来看看。也许能看出什么端倪来。
 
smallimage没有savetofile方法.
 
是哦,刚刚看了下,确实没savetofile方法。唉。不好意思,说错了,请见谅。
 
后退
顶部