MFC,如何获取文件图标并在Picture控件中显示
请大家赐教。使用SHGetFileInfo(...)函数获得一个文件的对应的图标,在对话框上添加了一个picture控件,请问如何显示?直接显示成本本身的IDR_MAIN...
请大家赐教。
使用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);
}
请大家赐教,谢谢! 展开
使用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);
}
请大家赐教,谢谢! 展开
3个回答
展开全部
例如:CBitmap bmp;
bmp.LoadBitmap(IDB_PAGE2);
GetDlgItem(IDC_PIC)->SetBitmap((HBITMAP)bmp); //IDC_PIC是图片框ID
bmp.Detach();
InvalidateRect( rcPic ); // 重绘Pic控件区域
再加个循环就可以了。。。
补充:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
展开全部
获取文件图片可以使用GetImage、GetBitmap、GetIcon三个接口;
Picture控件可以直接使用SetBitmap接口设置BMP格式的图片,其他的可以使用自绘的方式解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int nICONIndex = GetIconIndex(_T(".txt"), 0, 0);
这一句作用是什么?
这一句作用是什么?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询