2 回答

TA貢獻1858條經驗 獲得超8個贊
1.你可以先用CFileFind搜索指定目錄下的文件,把所有圖像文件的路徑保存在一個CStringList中,然后在按鈕響應函數中調用Invalidate,引起重畫,在OnDraw中寫顯示圖片的代碼。
2.關于CFileFind遍歷的應用,網上有很多代碼??床欢俾撓滴野伞?br/>3.可以得到文件的格式,再由格式判斷是否是圖片。無論是什么格式,最終都只是以二進制來存儲。所以操作圖像文件和操作普通文件是一樣的(只要你用二進制方式進行讀寫)。
4.圖像文件搜索的代碼在下面了(只能搜索一個文件夾里面的文件):
bool CReadImgDlg::FindImg(CString dir, //目錄名
CStringList &list) //文件路徑列表
{
CFileFind finder;
//開始查找文件
BOOL bWorking = finder.FindFile(dir + "\\*.*");
if(!bWorking)
return false;
while (bWorking)
{
bWorking = finder.FindNextFile();
//判斷是否是目錄或者是隱藏文件,又或者是".."和".",如果是,進入下一輪循環
if(finder.IsDirectory()|| finder.IsDots() || finder.IsHidden())
continue;
else//如果是文件
{
CString str;
//得到文件名
str = finder.GetFileName();
//得到文件后綴名
int nLen = str.GetLength() - finder.GetFileTitle().GetLength();
str = str.Right(nLen);
//判斷文件格式,如果是圖像文件,將其完整的路徑保存在列表中
if(str == ".jpg" || str == ".png" || str == ".bmp" || str == ".gif")
list.AddTail(finder.GetFilePath());
}
}
return (bool)list.GetCount();
}

TA貢獻1828條經驗 獲得超13個贊
你可以先用CFileDialog對象彈出選擇對話框 來讓用戶選擇要顯示的第一個文件。
然后用CFileFind來查找下一個文件,如果有,判斷格式,如果是圖片再顯示。不是就cancle
- 2 回答
- 0 關注
- 104 瀏覽
添加回答
舉報