生活随笔
收集整理的這篇文章主要介紹了
对以前的改进MFC略缩图控件改进
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以前寫了一篇日記, 顯示略縮圖,見
《自繪列表框控件顯示略縮圖----再稍微改進點點。。》
http://blog.csdn.net/hemmingway/article/details/7483619
這次給他加點改進,就是增加刪除被勾選的圖片。。。
增加兩個函數:
CString MakeFilename(int nItem);
BOOL ClearChecked(int nSubItem = 0); ? //clear all checked item
CString CListImageCtrl::MakeFilename(int nItem)
{ASSERT(nItem >= 0);ASSERT(nItem < GetItemCount());if ((nItem < 0) || nItem >= GetItemCount())return FALSE;ASSERT(!m_VectorImageNames.empty());// read the image fileCString fileName;if (m_strImageDir.Right(1) == TEXT("\\") )fileName.Format( TEXT("%s%s"), m_strImageDir, m_VectorImageNames[nItem] );elsefileName.Format( TEXT("%s\\%s"),m_strImageDir, m_VectorImageNames[nItem] );return fileName;
}BOOL CListImageCtrl::ClearChecked(int nSubItem /*= -1*/)
{// hold the window update to avoid flickingSetRedraw(FALSE);//ASSERT(nSubItem >= 0);ASSERT(nSubItem < GetColumns());if ((nSubItem < 0) || nSubItem >= GetColumns())return FALSE;unsigned int offset = 0;int n = GetItemCount();for (int nItem = 0; nItem < n; nItem++){unsigned int idx = nItem-offset;XLISTCTRLDATA *pXLCD = (XLISTCTRLDATA *) CListCtrl::GetItemData(idx);if (!pXLCD){continue;}if (pXLCD[nSubItem].nCheckedState == 1 ) //checked, delete it{CString file = MakeFilename(idx);DeleteFile(file);m_VectorImageNames.erase(m_VectorImageNames.begin() + idx);//m_ImageListThumb.Remove(idx); //error?this->DeleteItem(idx);offset++;if(m_nSelectedItem == idx)m_nSelectedItem = -1;}}Arrange(LVA_ALIGNTOP);SetRedraw(); return TRUE;
}
總結
以上是生活随笔為你收集整理的对以前的改进MFC略缩图控件改进的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。