生活随笔
收集整理的這篇文章主要介紹了
对以前的改进MFC略缩图控件改进
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
以前寫(xiě)了一篇日記, 顯示略縮圖,見(jiàn)
《自繪列表框控件顯示略縮圖----再稍微改進(jìn)點(diǎn)點(diǎn)。。》
http://blog.csdn.net/hemmingway/article/details/7483619
這次給他加點(diǎn)改進(jìn),就是增加刪除被勾選的圖片。。。
增加兩個(gè)函數(shù):
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;
}
總結(jié)
以上是生活随笔為你收集整理的对以前的改进MFC略缩图控件改进的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。