请大家赐教。使用SHGetFileInfo(...)函数获得一个文件的对应的图标,在对话框上添加了一个picture控件,请问如何显示? 
直接显示成本本身的IDR_MAINFRAME没有问题。程序如下:
int Ctest1Dlg::GetIconIndex(LPCTSTR lpszPath, BOOL bIsDir, BOOL bSelected)
{
SHFILEINFO sfi;
memset(&sfi, 0, sizeof(sfi));
if(bIsDir)
{
SHGetFileInfo(lpszPath,FILE_ATTRIBUTE_DIRECTORY,&sfi,sizeof(sfi),SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_USEFILEATTRIBUTES|(bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
else
{
SHGetFileInfo(lpszPath,FILE_ATTRIBUTE_NORMAL,&sfi,sizeof(sfi),SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_USEFILEATTRIBUTES|(bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
return -1;
}
void Ctest1Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码 int nICONIndex = GetIconIndex(_T(".txt"), 0, 0); HICON hIcon;
hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); ::SendMessage(::GetDlgItem(m_hWnd, IDC_STATIC_PROGRESS3), STM_SETICON, (WPARAM)hIcon, 0); 
}请大家赐教,歇息!