求助 使用API获取默认图标

wyb_45 2005-11-02 07:45:13
很久没来csdn了。
有个难题困扰我,发给大家 让大家帮帮忙看看

查了很长时间 没有结果
在VB里找到一个例子
基本上是使用这3个函数
SHFILEINFO
SHGetFileInfo
OleCreatePictureIndirect

我摸索了一整天,也没有调用成功这几个函数
请教高手帮助我解决
QQ:86044152
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2005-11-03
  • 打赏
  • 举报
回复
还有一个函数可以做到的就是ExtractAssociatedIcon 跟上面一个差不多
constantine 2005-11-03
  • 打赏
  • 举报
回复
TIcon *Icon1 = new TIcon();
Icon1->Handle = ExtractIcon(Handle, path.c_str(), i);
imgView->AddIcon(Icon1);
ExtractIcon 也 可以获得icon的图标,path.c_str()是路径,i控制要获得的图标的index
因为exe,dll这些的图标可能有多个
wyb_45 2005-11-03
  • 打赏
  • 举报
回复
谢谢ccrun(老妖)(www.ccrun.com)
我已经加你qq了
我用bcb4&5有5年了
自愧不如
shadowstar 2005-11-02
  • 打赏
  • 举报
回复
学习一下。
ccrun.com 2005-11-02
  • 打赏
  • 举报
回复
如果是取单个文件的默认图标,可以这样:
bool __fastcall MyGetFileDefaultIcon(String strFileName, TIcon *Icon)
{
SHFILEINFO fi;
memset(&fi, 0x00, sizeof(fi));
// SHGFI_SMALLICON指小图标,如果要大图标,换成SHGFI_LARGEICON
SHGetFileInfo(strFileName.c_str(), 0, &fi, sizeof(SHFILEINFO),
SHGFI_ICON | SHGFI_SMALLICON);
if(fi.hIcon)
{
Icon->Handle = fi.hIcon;
return true;
}
return false;
}

使用时:
CrnGetFileDefaultIcon("C:\\ccrun\\123.txt", Image1->Picture->Icon);

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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