快讯

VC一点通:实现文件夹的缩略图显示

2004-02-14 09:34  出处:PConline  作者:jiangsheng/CSDN  责任编辑:linjixiong 

本示例演示了列表控件的虚列表和自画功能,也演示了一些系统外壳的函数和接口的使用方法。  单击这里下载本文的代码。  预备性阅读 在阅读本文之前,建议先对列表视图控件和系统外壳有一个基本的了解。建议阅读以下SDK文章  ShellFAQ List-ViewControlsOverview UsingList-ViewControls CustomizingaControl'sAppearanceUsingCustomDraw 创建应用程序 使用MFC应用程序向导创建一个SDI应用程序,在最后一步选择视图的基类为CListView。创建完成之后,在资源中去掉保存、编辑和打印等功能的菜单和工具栏按钮(因为这些功能没有实现)。  虚列表的创建 本文采用虚列表技术,使得显示信息是在第一次显示的时候才被获取。为了创建虚列表,在创建之前需要指定列表的风格  BOOLCPicViewView::PreCreateWindow(CREATESTRUCT&cs) { cs.style&=~LVS_TYPEMASK; cs.style|=LVS_ICON|LVS_OWNERDATA; returnCListView::PreCreateWindow(cs); } 同时,因为列表项的Overlay图标也是被动态获取的,所以需要设置动态Overlay图标  voidCPicViewView::OnInitialUpdate() { CListView::OnInitialUpdate(); GetListCtrl().SetCallbackMask(LVIS_OVERLAYMASK); }  缓存显示信息 在列表需要显示一个范围的项目之前,列表会发送LVN_ODCACHEHINT通知,应用程序可以捕获这个消息来缓存部分列表的显示信息,以提高性能。  voidCPicViewView::OnOdcachehint(NMHDR*pNMHDR,LRESULT*pResult) { NMLVCACHEHINT*pCacheHint=(NMLVCACHEHINT*)pNMHDR; PrepCache(0,min(5,m_arpFolderItems.GetSize())); PrepCache(pCacheHint->iFrom,pCacheHint->iTo); PrepCache(max(0,m_arpFolderItems.GetSize()-5),m_arpFolderItems.GetSize()); *pResult=0; }   希望看到更多更经典的开发技巧,请随时刷新《开发特区》栏目。
察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键
IT热词搜索 来源:360新闻
软件论坛帖子排行
相关文章

相关软件:

腾讯QQ2012
大小:52.93 MB 授权:免费
腾讯QQ2012
立即下载
腾讯QQ2013
大小:49.32 MB 授权:免费
腾讯QQ2013
立即下载