使用SHGetFileInfo 获取文件大图标的问题
SHGetFileInfo(path, dwAttr, ref fi, Marshal.SizeOf(fi) , dwFlag);
获得的都是小图标,16*16的,放大成32 效果就特别差,
不知道哪出问题了,大图标小图标都是 16*16,
获得的都是小图标,16*16的,放大成32 效果就特别差,
internal static Icon GetIcon(string path, FILE_ATTRIBUTE dwAttr, SHGFI dwFlag)
{
SHFILEINFO fi = new SHFILEINFO();
Icon ic = null;
int iTotal = (int)SHGetFileInfo(path, dwAttr, ref fi, Marshal.SizeOf(fi) , dwFlag);
ic = Icon.FromHandle(fi.hIcon);
return ic;
}
public static Icon GetFileIcon(string filePath)
{
return ShellImages.GetIcon(filePath, ShellImages.FILE_ATTRIBUTE.NORMAL, ShellImages.SHGFI.USEFILEATTRIBUTES | ShellImages.SHGFI.ICON | ShellImages.SHGFI.LARGEICON);
}
public enum SHGFI : uint
{
ADDOVERLAYS = 0x20,
ATTR_SPECIFIED = 0x20000,
ATTRIBUTES = 0x800,
DISPLAYNAME = 0x200,
EXETYPE = 0x2000,
ICON = 0x100,
ICONLOCATION = 0x1000,
LARGEICON = 0x0,
LINKOVERLAY = 0x8000,
OPENICON = 2,
OVERLAYINDEX = 0x40,
PIDL = 8,
SELECTED = 0x10000,
SHELLICONSIZE = 4,
SMALLICON = 1,
SYSICONINDEX = 0x4000,
TYPENAME = 0x400,
USEFILEATTRIBUTES = 0x10
}
不知道哪出问题了,大图标小图标都是 16*16,
...全文
相关推荐
delphi 获取指定文件的图标实例
Windows 使用了一种叫做外壳接口(Shell Interface)的机制,它提供了对文件和文件夹进行操作的一系列接口,包括获取文件图标。其中,关键的 API 函数是 SHGetFileInfo。
易语言-易语言API取文件图标信息
在学习和应用这些知识时,你需要注意Windows API函数的使用通常需要对系统底层有一定的理解,而且错误处理也非常重要,防止因文件不存在或权限问题导致的错误。
VC常见问题白问
**使用 SHGetFileInfo 函数**: - 这个函数可以获取关于指定文件的各种信息,包括图标。
如何在VC++程序中获得其他程序的图标
#### 方法一:使用`SHGetFileInfo`函数`SHGetFileInfo`函数可以获取文件的各种信息,包括大图标、小图标、文件类型等。此函数非常强大,适用于大多数场景。
MFC ListControl控件显示文件夹和文件.zip
对于每个找到的条目,获取其图标(通过SHGetFileInfo()或IExtractIcon接口),并将其添加到List Control中。同时,设置每行的文本信息,比如文件名或文件夹名。


