關於 TreeView 得到系統 Icon 的問題

void __fastcall TForm1::GetDriveTree(String DriveName)
{
    SHFILEINFO shfinfo;
    TTreeNode * Node1 = TreeView1->Items->Add(NULL,DriveName) ;
    ImageList1->Handle = SHGetFileInfo(DriveName.c_str(),NULL,&shfinfo,sizeof(SHFILEINFO),
    SHGFI_SMALLICON|SHGFI_SYSICONINDEX) ;
    Node1->ImageIndex = shfinfo.iIcon ;
    Node1->SelectedIndex = shfinfo.iIcon ;


    TSearchRec sr ;

    if (FindFirst(DriveName+"*.*", faAnyFile, sr) == 0)
    {
        do
        {
            if((sr.Attr & faDirectory) && sr.Name!="." && sr.Name!="..")
            {
                String temp = DriveName+sr.Name;
                TTreeNode *TempNode = TreeView1->Items->AddChild(Node1,sr.Name);
                ImageList1->Handle = SHGetFileInfo(temp.c_str(),NULL,&shfinfo,sizeof(SHFILEINFO),
                SHGFI_SMALLICON|SHGFI_SYSICONINDEX) ;
                TempNode->ImageIndex = shfinfo.iIcon ;
                TempNode->SelectedIndex = shfinfo.iIcon ;
            }
        } while (FindNext(sr) == 0);
    FindClose(sr);
    }
    TreeView1->Selected = TreeView1->GetNodeAt(1,1);
    //讓他在更新完後有指向root的動作才會觸發changing
}

//设置listview的图标。
SHFILEINFO FileInfo;
THandle ImageListHandle;
//大图标
ImageListHandle = SHGetFileInfo("C://", 0, &FileInfo, sizeof(FileInfo),
SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,ImageListHandle);
//小图标
ImageListHandle = SHGetFileInfo("C://", 0, &FileInfo, sizeof(FileInfo),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON);

SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);

SHFILEINFO FileInfo;

ZeroMemory(&FileInfo,sizeof(FileInfo));
SHGetFileInfo(sFileName.c_str(), 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON|SHGFI_SMALLICON );

移至頂端

原因只出在沒將 ImageList1 的 ShareImages 設為 true ...

SendMessage(FJListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);
SendMessage(FJHtmlListView->Handle, LVM_SETIMAGELIST, LVSIL_SMALL,ImageListHandle);

SHFILEINFO FileInfo;

ZeroMemory(&FileInfo,sizeof(FileInfo));
SHGetFileInfo(sFileName.c_str(), 0, &FileInfo, sizeof(FileInfo),SHGFI_ICON|SHGFI_SMALLICON );

移至頂端

原因只出在沒將 ImageList1 的 ShareImages 設為 true ...

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值