MFC,cfiledialog怎么打开多个图

我的意思就是cfiledialog执行DoModal()可以用shift或ctrl选择文件夹里的多幅图,然后一缩略图显示在屏幕上,如果想看大图就双击缩略图就可以了!!请问... 我的意思就是cfiledialog执行DoModal()可以用shift或ctrl选择文件夹里的多幅图,然后一缩略图显示在屏幕上,如果想看大图就双击缩略图就可以了!!
请问一下,大神怎么搞,有没有具体代码???
展开
 我来答
bhtzu
2014-12-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4213万
展开全部

打开多图示例代码:

	CFileDialog ff(TRUE,NULL,NULL,OFN_ENABLESIZING|OFN_ALLOWMULTISELECT|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST,_T("All Files (*.*)|*.*||"),this);
int MIN_FILE_NUMBER = 20;//最多同时选中文件数
ff.m_ofn.lpstrFile = new TCHAR[_MAX_PATH * MIN_FILE_NUMBER]; //重新定义缓冲区大小
memset(ff.m_ofn.lpstrFile, 0, _MAX_PATH * MIN_FILE_NUMBER);  //初始化定义的缓冲区
ff.m_ofn.nMaxFile = _MAX_PATH * MIN_FILE_NUMBER;
CString dir;
if(IDOK==ff.DoModal())
{
POSITION pos = ff.GetStartPosition();
while (NULL != pos)
{
   dir = ff.GetNextPathName(pos);//获取文件名
            ;//这里自己将文件名保存到需要的地方
}
}
追问
再请问一下缩略图是怎么搞的??
追答
缩略图的搞法很多。
最省事儿的,就是在图片都读取进来之后,使用StretchBlt缩小贴到窗口就可以了。
这种方法可以最简单的实现缩略图,不过如果图片非常多,或者是商用软件开发,应该使用更合理的压缩算法,并通过临时或者缓冲的方式保存起来,其中涉及的东西就很多了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式