哪个函数可以取得所有文件的图标?急急急!

wang0821 2000-09-06 08:59:00
加精
是不是ExtractAssociatedIcon,我不大清楚,很急!
...全文
222 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
U皮特U 2000-09-11
  • 打赏
  • 举报
回复
SHGetFileInfo可以用在win98中,我的程序中有用过,没问题的。
Wingsun 2000-09-11
  • 打赏
  • 举报
回复
lstvwPicFiles是一个ImageList控件,Handle是它的句柄。当然他也可以在win98中使用的,不信你试一试,再说了,BCB5中还有一个例子。
wang0821 2000-09-11
  • 打赏
  • 举报
回复
谢谢wingsun!能否告诉我你的Oicq!想多请教请教!
Wingsun 2000-09-11
  • 打赏
  • 举报
回复
不知道你是如何应用图标的,我是这样的
int IconFlag=SHGFI_SYSICONINDEX|SHGFI_LARGEICON ;
SHFILEINFO * FileInfo=new SHFILEINFO();
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];
fnsplit(OpenFile->Files->Strings[i].c_str() ,drive,dir,file,ext);
SHGetFileInfo(OpenFile->Files->Strings[i].c_str() ,0,FileInfo,sizeof(SHFILEINFO),IconFlag);
TListItem * pFile;
AnsiString filename=file;
filename+=ext;
pFile=lstvwFiles->Items->Add();
pFile->Caption=filename;
pFile->ImageIndex=FileInfo->iIcon;
delete FileInfo;
关于windows media player的问题是不是你写的程序第一次可以运行正常,但是当你再次运行时就出问题了,如果是这样的话,可能是你第一次运行结束时没有释放资源。
wang0821 2000-09-11
  • 打赏
  • 举报
回复
请教wingsun,我老是得不到图标!请指教!
wang0821 2000-09-11
  • 打赏
  • 举报
回复
谢谢各位!
谢谢wingsun,稍后给分给你 !我用你说的 函数作了,一个很喜剧的 结果产生了 ,WINDOWS的图标全都不见了,重启动机子又好了!我 知道这个是得到了所有的 图标。前提是我把SENDMESSAGE去掉了。
我想再请教一个问题就是有关windows media palyer的,我的程序怎么运行后我添加的这个activeX控件没法用呢?系统报错说MMSYSTEM281无法播放该文件,不管什么文件,但是在WINDOWS下又可以用呢?我该怎么解决这个问题呢?WINDOWS我已经试过重新安装,还是不行!
wang0821 2000-09-11
  • 打赏
  • 举报
回复
SHGetFileInfo在WIN98的帮助中写 的是只能用于WIN NT,怎么在WIN98中用呢?
我的OICQ号码是1288362,请现在能解答的大虾即刻与我 联系,万分感谢!
U皮特U 2000-09-10
  • 打赏
  • 举报
回复
// 取得系统图标列表gsysImageList
CImageList gSysImageList // 系统图标

HIMAGELIST hImgList = (HIMAGELIST)SHGetFileInfo( "C:\\", 0, &shFinfo, sizeof( shFinfo ), SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
gSysImageList.Attach(hImgList);

// 取得文件strFileName的图标序号shFinfo.iIcon
SHGetFileInfo( strFileName, 0, &shFinfo, sizeof( shFinfo ),
SHGFI_ICON | SHGFI_SMALLICON | SHGFI_TYPENAME );

wang0821 2000-09-10
  • 打赏
  • 举报
回复
lstvwPicFiles->Handle,这个句柄是怎么来的?
Wingsun 2000-09-08
  • 打赏
  • 举报
回复
如果你要获得所有的图标,并将他们装入一个ImageList中可以使用API来实现,如下:
THandle ImageList;
SHFILEINFO * FileInfo=new SHFILEINFO();
ImageList=SHGetFileInfo("C:\\",0,FileInfo,sizeof(SHFILEINFO),SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
SendMessage(lstvwPicFiles->Handle,LVM_SETIMAGELIST,LVSIL_SMALL,ImageList);
ImageList=SHGetFileInfo("C:\\",0,FileInfo,sizeof(SHFILEINFO),SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
SendMessage(lstvwPicFiles->Handle,LVM_SETIMAGELIST,LVSIL_NORMAL,ImageList);
delete FileInfo;
wang0821 2000-09-07
  • 打赏
  • 举报
回复
ExtractIcon()是取得exe,bmp,dll,ico等文件的图标,剩下的两个函数不是很清楚h鯟请大虾指教!
shines77 2000-09-07
  • 打赏
  • 举报
回复
ExtractIcon(), ExtractIconEx(), ExtractAssociatedIcon() 都可以。
shines77 2000-09-07
  • 打赏
  • 举报
回复
ExtractIconEx(), 是ExtractIcon()的扩展,ExtractAssociatedIcon() 是取得关联的图标,当然这三个函数都可以取得所有exe,dll,ico的图标,bmp也可以。

你是不清楚什么,去MSDN里查这三个函数即可。
wang0821 2000-09-06
  • 打赏
  • 举报
回复
请指教,我写了很多代码才找出来的
Larky 2000-09-06
  • 打赏
  • 举报
回复
你先说一下那个函数可以取得所有文件吧!

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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