请问下面哪里错了。void CIconViewDlg::ShowFileIcons(const CString sFileName)
{
int nCount;
nCount = (int)ExtractIcon(0, sFileName, -1); CImageList il;
il.Create(32, 32, ILC_COLOR32, 1);
m_wndIconList.SetImageList(&il, LVSIL_NORMAL); for (int i = 0; i < nCount; i++)
{
HICON hIcon;
hIcon = ExtractIcon(0, sFileName, i);
if (hIcon != 0)
{
il.Add(hIcon);
m_wndIconList.InsertItem(i, "test", i);
}
}
}
主要是这句出错 il.Add(hIcon);
{
int nCount;
nCount = (int)ExtractIcon(0, sFileName, -1); CImageList il;
il.Create(32, 32, ILC_COLOR32, 1);
m_wndIconList.SetImageList(&il, LVSIL_NORMAL); for (int i = 0; i < nCount; i++)
{
HICON hIcon;
hIcon = ExtractIcon(0, sFileName, i);
if (hIcon != 0)
{
il.Add(hIcon);
m_wndIconList.InsertItem(i, "test", i);
}
}
}
主要是这句出错 il.Add(hIcon);
69 {
70 CPtrArray* paIcon = ((CPtrArray*)pParam);
71 CPageFilesExeList* pExeFiles = (CPageFilesExeList*)paIcon->GetAt(0);
72 CStringArray* psArrayExeNames = (CStringArray*)paIcon->GetAt(1);
73 CImageList* pImagesSmall = (CImageList*)paIcon->GetAt(2);
74 CImageList* pImagesLarge = (CImageList*)paIcon->GetAt(3);
75
76 CString sIconPath;
77 char* psIconPath;
78 int j = psArrayExeNames->GetSize();
79 for(int i = 1; i < j; i += 2)
80 {
81 sIconPath = psArrayExeNames->GetAt(i);
82 psIconPath = sIconPath.GetBuffer(MAX_PATH);
83
84 WORD wIconIndex = 0;
85 HICON hExeIcon;
86 if((hExeIcon = ExtractIcon(AfxGetInstanceHandle(), psIconPath, 0)) != NULL)
87 {
88 pImagesSmall->Add(hExeIcon);
89 pImagesLarge->Add(hExeIcon);
90 }
91 else if((hExeIcon = ExtractAssociatedIcon(AfxGetInstanceHandle(), psIconPath, &wIconIndex)) != NULL)
92 {
93 pImagesSmall->Add(hExeIcon);
94 pImagesLarge->Add(hExeIcon);
95 }
96 psArrayExeNames->GetAt(i).ReleaseBuffer();
97
98 pExeFiles->Update(i / 2);
99 }
100
101 paIcon->RemoveAll();
102 delete paIcon;
103
104 return 0;
105 }
122 m_pImagesSmall->Create(16, 16, ILC_COLORDDB | ILC_MASK, 1, 100);
123 m_pImagesLarge = new CImageList;
124 m_pImagesLarge->Create(32, 32, ILC_COLORDDB | ILC_MASK, 1, 100);