用CTreeCtrl做资源管理碰到的问题

毒行江湖 2011-01-16 04:26:31
想做一个地图编辑器。
我现在做了一个对话框,上面放了三个属性页。其中有一个属性页是放的CTreeCtrl控件,显示的是资源目录树,且记为PropertyPage1;另外一个属性页(且记为PropertyPage2)上面有个Button,是打开资源目录用的,就是说触发了这个按钮后出现一个选目录的对话框,然后选择文件夹之后返回一个路径,我想达到的效果是在这个选择目录的操作完成之后,当我查看PropertyPage1的时候能看到CTreectrl控件中已经显示了这个目录下的所有文件。

现在的进度:
1、给定初始路径,在初始对话框的时候遍历路径下的文件并使之显示在CTreeCtrl上,没问题。
2、选择目录对话框的功能,用SHBrowseForFolder做好了,并得到了正确的路径,没问题。
问题是:
1、在遍历新目录之前需要导入文件夹路径,而在上面得到的是形如“E:\a\b\c”的格式(类型是CString),在调用CFileFind::FindFile(LPCTSTR pstrName)的时候是不是应该改成形如“E:\\a\\b\\c”的格式?如果需要的话,怎么改,我自己写个for循环一个一个字符地检查然后移动能替换(我只能想到这样的笨方法,囧),但是我想知道能不能使用CString所提供的函数来组合出一个高效的方法来实现这样的功能。
2、在获得新目录之后,如果我要只遍历新目录下的文件,是不是要DeleteAllItem,然后直接就可以InsertItem了吗?需不需要其他什么操作,比如UpdateDialog什么的? 如果我想把新目录与旧目录(比如是D:\e\f)都显示,还要把新目录的主目录(即c)放在与旧目录的根目录(即f)同级的位置,其下的子文件和子文件夹也都相应同级,而且要排按顺序排列,应该怎么办?
请各位大侠帮忙看看,或者,有没有这方面的例子,给我个。不胜感激。
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
毒行江湖 2011-01-19
  • 打赏
  • 举报
回复
问题已经解决了,用自己的方法。谢谢楼上的。
TandyT 2011-01-16
  • 打赏
  • 举报
回复
没做过 地图编辑器 方面的,如果用树控件来实现你的第二个要求的话,应该可以实现的。具体的楼主可以网上搜索下,因为你这个太具体了,一时做不出完整源码给你
TandyT 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 linghanjunzi 的回复:]
想做一个地图编辑器。
我现在做了一个对话框,上面放了三个属性页。其中有一个属性页是放的CTreeCtrl控件,显示的是资源目录树,且记为PropertyPage1;另外一个属性页(且记为PropertyPage2)上面有个Button,是打开资源目录用的,就是说触发了这个按钮后出现一个选目录的对话框,然后选择文件夹之后返回一个路径,我想达到的效果是在这个选择目录的操作完成之后,当我查看Prope……
[/Quote]

在字符串里,反斜杠 \ 需要用转义字符,也就是 "\\" 才表示字符 '\'

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧