由于项目需要,程序界面中要实现了一个缩略图显示控件,从CodeProject上查找到了一个类似的例子(原标题为:Showing the Image file thumbnail view in ListView control using VC++ 6.0 By Karpaga Rajan.),修改了一下,其中源代码中加入图片的代码如下:
// 查找某个文件夹下的图片文件(假如全是BMP)
HBITMAP hBitmap = LoadPicture( finder.GetFilePath() );
if ( hBitmap != NULL )
{
int nItem = GetItemCount();
CBitmap *pBitmap = new CBitmap();
pBitmap->Attach( hBitmap );
int nImage = m_ImageList.Add( pBitmap, RGB( 255, 255, 255 ) );
InsertItem( nItem, finder.GetFileTitle(), nImage );
}
第一次写完后,就很郁闷,上面new了一个CBitmap,却没有在任何地方delete,今天决定解决程序中的内存泄露问题,所以就找到了这块,原本以为CImageList会提供一个让人很愉快的解决方案,不过看了下它的成员函数,这才发现没那么容易。
第一次尝试:加入DeleteImageList
在构的CListCtrl析构函数中加入 m_cImageList.DeleteImageList,然后将内存泄露的输出信息保存为TXT文件,用UE对比了一个,还是没有解决。