在ListView中添加一些32位色的图标(图标形状最好不要是正方形),添加后,图标边线上总会有一个黑圈。感觉好像是XP图标的透明色不能被正确的显示。
不管是用Delphi7自带的ImageList还是用API ImageList_Create 自己创建都不行。
也试过用 SHGetFileInfo 获取图标句柄后直接通过 ImageList_AddIcon 添加,不通过Delphi7的TIcon类,但添加出来的还是有黑圈。但Delphi7 自带的Demo:Virtual ListView中,通过设置系统的图标,却能完美在ListView上将Xp的效果显示出来。
ImageListHandle := SHGetFileInfo('C:\',
0,
FileInfo,
SizeOf(FileInfo),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
SendMessage(ListView.Handle, LVM_SETIMAGELIST, LVSIL_NORMAL, ImageListHandle);自己试了好多方法,实在是找不到原因,请教各位高手帮下小弟。
不管是用Delphi7自带的ImageList还是用API ImageList_Create 自己创建都不行。
也试过用 SHGetFileInfo 获取图标句柄后直接通过 ImageList_AddIcon 添加,不通过Delphi7的TIcon类,但添加出来的还是有黑圈。但Delphi7 自带的Demo:Virtual ListView中,通过设置系统的图标,却能完美在ListView上将Xp的效果显示出来。
ImageListHandle := SHGetFileInfo('C:\',
0,
FileInfo,
SizeOf(FileInfo),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
SendMessage(ListView.Handle, LVM_SETIMAGELIST, LVSIL_NORMAL, ImageListHandle);自己试了好多方法,实在是找不到原因,请教各位高手帮下小弟。
delphi的demo里也只是获取了系统的图标资源,而通过自己创建一个ImageList_Create,却不能很好的支持alpha,想来想去似乎只有这里可能存在问题了。
CustomDrawItem
CustomDrawSubItem