MFC,cfiledialog怎么打开多个图
我的意思就是cfiledialog执行DoModal()可以用shift或ctrl选择文件夹里的多幅图,然后一缩略图显示在屏幕上,如果想看大图就双击缩略图就可以了!!请问...
我的意思就是cfiledialog执行DoModal()可以用shift或ctrl选择文件夹里的多幅图,然后一缩略图显示在屏幕上,如果想看大图就双击缩略图就可以了!!
请问一下,大神怎么搞,有没有具体代码??? 展开
请问一下,大神怎么搞,有没有具体代码??? 展开
1个回答
展开全部
打开多图示例代码:
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缩小贴到窗口就可以了。
这种方法可以最简单的实现缩略图,不过如果图片非常多,或者是商用软件开发,应该使用更合理的压缩算法,并通过临时或者缓冲的方式保存起来,其中涉及的东西就很多了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询