时间: 2021-07-31 作者:daque
一个体例图象列表囊括每个文献、文献夹、缩略图的图标。按照这个就不妨创造一个自设置的资源处置器作风的应用步调。第一步囊括从体例赢得巨细图标(假设你都你都须要的话),而后即是将她们辨别调配给一个cimagelist东西并把它们增添给你的列表控件。结果不要忘了在析构因变量里实行detach()操纵,要不体例中一切的图标将消逝,你只能从新启用你的计划机了(我就碰到过好几次如许的教导)。 开始,在你的列表控件类里增添底下两个数据分子:cimagelist m_smallimagelist;cimagelist m_largeimagelist;接着,增添这个因变量:void csystemlistctrl::initializesystemimagelist(){//创造图象列表himagelist hsystemsmallimagelist, hsystemlargeimagelist;shfileinfo ssfi, lsfi;//赢得指向体例小图目标句柄hsystemsmallimagelist = (himagelist)shgetfileinfo( (lpctstr)_t("c:\\"), 0, &ssfi, sizeof(shfileinfo), shgfi_sysiconindex | shgfi_smallicon); //把它调配给小图象列表 //不要忘了在你的析构因变量里实行m_smallimagelist.detach()操纵m_smallimagelist.attach(hsystemsmallimagelist);//对大图标做同样的处事hsystemlargeimagelist = (himagelist)shgetfileinfo( (lpctstr)_t("c:\\"), 0, &lsfi, sizeof(shfileinfo), shgfi_sysiconindex | shgfi_icon);m_largeimagelist.attach(hsystemlargeimagelist);//给列表控件树立图象列表setimagelist(&m_smallimagelist, lvsil_small);setimagelist(&m_largeimagelist, lvsil_normal);}同声,你须要底下这个因变量来博得你要表露的每一项的图目标id。int csystemlistctrl::geticonindex(const cstring& csfilename)//完备的路途以及文献名{ shfileinfo sfi; shgetfileinfo((lpctstr)csfilename,0,&sfi,sizeof(shfileinfo), shgfi_sysiconindex | shgfi_smallicon ); return sfi.iicon;}