gpt4 book ai didi

c++ - 如何使用C++获取文件图标

转载 作者:可可西里 更新时间:2023-11-01 10:02:08 51 4
gpt4 key购买 nike

我想使用 C++ 将图标添加到 TreeView 节点。我想从系统中获取图标,我试过了

我试过,

PMString ucPath("C:\\path\\to\\file.extension");
SHFILEINFO info;

::SHGetFileInfo(ucPath.GrabTString(), FILE_ATTRIBUTE_NORMAL, &info, sizeof(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON);

iconView->SetRsrcID((RsrcID) info.hIcon);
::DestroyIcon(info.hIcon);

其中,SetResrcID、PMString 是 InDesing API,iconView 是 Tree 的 controlView,我没有弄明白哪里出了问题,如果有人有想法请提出建议。

谢谢,普拉文马奇

最佳答案

这是我在我的应用程序中使用的代码,您应该将图标更改为位图。

PMString ucPath("C:\\path\\to\\file.extension");
SHFILEINFO info;

::SHGetFileInfo(ucPath.GrabTString(), FILE_ATTRIBUTE_NORMAL, &info, sizeof(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON);
ICONINFO stIconInfo;
GetIconInfo(s_sfi.hIcon, &stIconInfo);
HBITMAP hBmp = stIconInfo.hbmColor;
DestroyIcon(s_sfi.hIcon) ;

最好的方法是使用带有 SHGFI_SYSICONINDEX 的系统图标索引。

关于c++ - 如何使用C++获取文件图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061871/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com