请问如何获得文件相关的小图标,然后画到LISTVIEW里去,不要用IMAGELIST

huayuxing 2004-06-14 02:14:21
用GETFILEINFO好象只能获得大图标,小图标获得不了啊,
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzhifei 2004-06-15
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
var
Icon: TICon;
SHFileInfo: TSHFileInfo;
begin
Icon := TIcon.Create;
SHGetFileInfo('c:\a.bmp',
0,
SHFileInfo,
sizeof(SHFileInfo),
SHGFI_ICON or SHGFI_SMALLICON);
Icon.Handle := SHFileInfo.hIcon;
Canvas.Draw(0, 0, Icon);
icon.Free;

end;
午秋 2004-06-14
  • 打赏
  • 举报
回复
Delphi6自带的例子中有
\Delphi6\Demos\Virtual Listview
huayuxing 2004-06-14
  • 打赏
  • 举报
回复
DrawIcon(Form1.Canvas.Handle,10,10 ,flags);
huayuxing 2004-06-14
  • 打赏
  • 举报
回复
这是这样写的,大图标就能画出来,小图标画不出来
huayuxing 2004-06-14
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
var

FileInfo: TSHFileInfo;
Flags: Integer;
begin
FillChar(FileInfo, SizeOf(FileInfo), #0);
Flags := SHGFI_ICON or SHGFI_SMALLICON;
SHGetFileInfo(PChar('C:\diao.bmp'),
0,
FileInfo,
SizeOf(FileInfo),
Flags);
flags := FileInfo.iIcon;
DrawIcon(flags,10,10,flags);
end;
end.
xzhifei 2004-06-14
  • 打赏
  • 举报
回复
小图标时就这样用:
Flags := SHGFI_ICON or SHGFI_SMALLICON;
huayuxing 2004-06-14
  • 打赏
  • 举报
回复
我是这样用的,返回的是0可是,是不是只有98下才对啊,2000里反正不行
xzhifei 2004-06-14
  • 打赏
  • 举报
回复
它可以将某一文件的大、小显示图标调出来。
var
FileInfo: TSHFileInfo;
Flags: Integer;
begin
FillChar(FileInfo, SizeOf(FileInfo), #0);
Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_IPENICON{或者 or SHGFI_LCARGEICON 或 or SHGFI_SMALLICON};
SHGetFileInfo(PChar(PIDL),
0,
FileInfo,
SizeOf(FileInfo),
Flags);
Result := FileInfo.iIcon;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧