MFC中怎么实现连续显示一个文件夹里的图片

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:58:36
我的想法是用CFileFind搜索指定目录下的文件,判断如果是图像文件,就读取,最后在Ondraw里显示出来 。但是由于知识有限,有很多问题 :
【例如,我现在对一个按钮做响应函数处理,这个按钮是完成下一张的功能,那么我就想当我点下这个按钮时,塔能调用函数获得下一张图片的句柄,然后交给ondraw函数来显示出来】
不清楚该怎样搜索,Findfile函数看了部太明白。
该怎样处理各种不同格式图片的读取,GDI+中有读取函数吗,
总之希望高手讲解一下思路和具体的实现步骤,能用具体的代码说话就更好了,谢谢各位了,
关于用Findfile,来连续查看图片的过程望详细讲解一下,谢谢~
谢谢!!
高手帮我用详细代码解释清楚啊,再送300分,谢谢~~~
FindFirstFile()和FindNextFile()写一个读取图片并显示出来的代码,例如我的图片放在"D:\Pic\"中,当我在查看图片是,点击下一张,则调用函数,读取下一个文件,若为图片,则显示,若不是图片,则继续读取下一张,直到遇到图片则显示出来。谢谢。

是否需要源程序,我这里有,以前做过,现在有点理不出头绪了。你说的这个难点有两个:
1.在MFC中显示图片,这是一种模块功能,你可以单独来写。
2.遍历指定文件夹,找到指定文件。这个难度可能要比第一条大,因为第一条有许多源代码可以参考,而这条你可以参见一下Windows资源管理器的相关编程,它就涉及到同一文件夹下,所有文件的显示和处理方式。
总的来说:自己从头编不是小工程,不过现在也没有人从头编,站在巨人的肩膀上才能走的远。所以我建议你参考其他人的源程序,进行修改移植,这样你既可以完成工程量也可以达到效果,不过一定要有一些调试程序的经验和基础。
注:如需源程序,留邮箱或站内联系
源码已经发送至你邮箱,是我原来一个工程的一部分,没有分离完全,不过VC++6.0调试通过,好好看看吧,就是你要的功能。

1.你可以先用CFileFind搜索指定目录下的文件,把所有图像文件的路径保存在一个CStringList中,然后在按钮响应函数中调用Invalidate,引起重画,在OnDraw中写显示图片的代码。
2.关于CFileFind遍历的应用,网上有很多代码。看不懂再联系我吧。
3.可以得到文件的格式,再由格式判断是否是图片。无论是什么格式,最终都只是以二进制来存储。所以操作图像文件和操作普通文件是一样的(只要你用二进制方式进行读写)。
4.图像文件搜索的代码在下面了(只能搜索一个文件夹里面的文件):
bool CReadImgDlg::FindImg(CString dir, //目录名
CStringList &list) //文件路径列表
{
CFileFind finder;
//开始查找文件
BOOL bWorking = finder.FindFile(dir + "\\*.*");

if(!bWorking)
return false;

while (bWorking)
{
bWorking