Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135514
  • 博文数量: 20
  • 博客积分: 128
  • 博客等级: 入伍新兵
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-10 18:16
文章分类

全部博文(20)

文章存档

2013年(15)

2012年(5)

分类: 嵌入式

2013-04-22 17:30:08

1.动态选择一张图片,并获得当前图片所在文件夹下的所有图片的路径。
FindFirstFile和FindNextFile可以完成此操作。
思路:
(1)选中一个张图片,加载。获得其路径的方法有些不同
CString firstname;//保存当前选中图片的名字
CString firstPath;//保存当前选中图片的路径,用以和后面进行翻页时比较到底是向前翻页还是向后翻页
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
  TEXT("Bmp files(*.bmp)|*.bmp|"),NULL);
if (dlg.DoModal())
 {
        firstname = dlg.GetFileName();
        firstPath = dlg.GetPathName();
}
firstPath里保存的就是选中那张图片的完全路径
(2)调用FindFirstFile函数,
HANDLE hFile;
 WIN32_FIND_DATA FileData;
hFile = FindFirstFile(TEXT(" Card\\*"),&FileData);//TEXT(" Card\\*"),路径(图片的父目录)
可用GetLastError()测试当前出错的问题。
判断第一张图片是否是之前选中的那张if (firstname == FileData.cFileName)
如果是,则保存到数组里。不是则用FindNextFile获取下一张图片,判断当前找到的图片是否是之前选中的那张if (firstname == FileData.cFileName)并保存到数组中,如果是记录下来此图片在数组中的下标。不是继续保存向下查找。当FindNextFile返回值为0时表示所有图片已经被保存完毕并记录了第一次选择的那个图片的下标。此时退出循环即可。这里有个小问题,就是用FindNextFile和FindFirstFile得到的文件属性只能是文件名字。所以要保存完全路径需要处理一下:
CString temp_path;
temp_path.Format(TEXT(" Card\\%s"),FileData.cFileName);
完成连接,形成每个图片的完全路径。

2点击浏览按钮跳转到浏览对话框,再未点击打开按钮之前,如何禁用其他button。点击打开按钮如何恢复其他按钮。
关联变量与控件

如图操作即可。
例如m_LeftBtn
 m_LeftBtn.EnableWindow(FALSE);就是禁用了ID为IDC_Left的按键。
由于我是想实现在主界面跳转到浏览界面后点击打开按钮之前使得其他按钮禁用,不知道禁用的语句放在何处合适,最终发现在重写函数里解决了

选择重写OnInitDialog这个函数。将禁用BUTTON的语句写在函数内即可。

阅读(2948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~