亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

想法如下,但是由于知識有限,出現了很多問題 :

想法如下,但是由于知識有限,出現了很多問題 :

C
喵喵時光機 2023-03-02 17:13:42
我的想法是用CFileFind搜索指定目錄下的文件,判斷如果是圖像文件,就讀取,最后在Ondraw里顯示出來 ?!纠纾椰F在對一個按鈕做響應函數處理,這個按鈕是完成下一張的功能,那么我就想當我點下這個按鈕時,塔能調用函數獲得下一張圖片的句柄,然后交給ondraw函數來顯示出來】 不清楚該怎樣搜索,Findfile函數看了部太明白。 該怎樣處理各種不同格式圖片的讀取,GDI+中有讀取函數嗎, 總之希望高手講解一下思路和具體的實現步驟,能用具體的代碼說話就更好了,謝謝各位了, 關于用Findfile,來連續查看圖片的過程望詳細講解一下,謝謝~ 謝謝!!高手幫我用詳細代碼解釋清楚啊,再送300分,謝謝~~~ FindFirstFile()和FindNextFile()寫一個讀取圖片并顯示出來的代碼,例如我的圖片放在"D:\Pic\"中,當我在查看圖片是,點擊下一張,則調用函數,讀取下一個文件,若為圖片,則顯示,若不是圖片,則繼續讀取下一張,直到遇到圖片則顯示出來。謝謝。
查看完整描述

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();


查看完整回答
反對 回復 2023-03-06
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

你可以先用CFileDialog對象彈出選擇對話框 來讓用戶選擇要顯示的第一個文件。
然后用CFileFind來查找下一個文件,如果有,判斷格式,如果是圖片再顯示。不是就cancle

查看完整回答
反對 回復 2023-03-06
  • 2 回答
  • 0 關注
  • 104 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號