右键文件重命名

时间:2023-01-18 11:33:39
我设计了一个类似资源管理器的程序。现在我想实现左边TreeCtrl右键重命名和右边ListCtrl右键重命名。并能像资源管理器那样能左右同步,并且重命名有效。请高手指点。多谢

10 个解决方案

#1


CListCtrl有一个右键响应函数,自己查一下。
在内面写代码就可以了。

#2


这我知道,左边右键重命名我已经实现,但是一旦重命名再点击此目录,右边的ListCtrl目录下没文件了。我该如何保存我重命名的文件名

#3


引用 1 楼 hztj2005 的回复:
CListCtrl有一个右键响应函数,自己查一下。
在内面写代码就可以了。

这我知道,左边右键重命名我已经实现,但是一旦重命名再点击此目录,右边的ListCtrl目录下没文件了。我该如何保存我重命名的文件名

#4


类向导中,添加此控件的事件:NM_RCLICK

#5


引用 4 楼 fengrx 的回复:
类向导中,添加此控件的事件:NM_RCLICK

事件处理我做了,我想实现TreeCtrl和ListCtrl重命名同时实现 请看看资源管理器效果

#6


文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点

#7


引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这两个可以改名

#8


如何在系统中修改???保存我编辑的文件名 

#9


引用 7 楼 w356628 的回复:
引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这两个可以改名


如何在系统中修改???保存我编辑的文件名

#10


引用 9 楼 yimeng08 的回复:
引用 7 楼 w356628 的回复:
引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这……


树控件不是可以响应一个change的消息,具体是什么忘了, 能够得到你当前选中的树结点指针
你再往上遍历就可以得到你当前选中的文件路径。 如果发生的重命名操作,则用 rename()或 copyfile() 更改你系统的文件名。
大体的我思路就是这样了,不知道对你有没有帮助~

#1


CListCtrl有一个右键响应函数,自己查一下。
在内面写代码就可以了。

#2


这我知道,左边右键重命名我已经实现,但是一旦重命名再点击此目录,右边的ListCtrl目录下没文件了。我该如何保存我重命名的文件名

#3


引用 1 楼 hztj2005 的回复:
CListCtrl有一个右键响应函数,自己查一下。
在内面写代码就可以了。

这我知道,左边右键重命名我已经实现,但是一旦重命名再点击此目录,右边的ListCtrl目录下没文件了。我该如何保存我重命名的文件名

#4


类向导中,添加此控件的事件:NM_RCLICK

#5


引用 4 楼 fengrx 的回复:
类向导中,添加此控件的事件:NM_RCLICK

事件处理我做了,我想实现TreeCtrl和ListCtrl重命名同时实现 请看看资源管理器效果

#6


文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点

#7


引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这两个可以改名

#8


如何在系统中修改???保存我编辑的文件名 

#9


引用 7 楼 w356628 的回复:
引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这两个可以改名


如何在系统中修改???保存我编辑的文件名

#10


引用 9 楼 yimeng08 的回复:
引用 7 楼 w356628 的回复:
引用 6 楼 yimeng08 的回复:
文件目录项重命名实现了,但目录再一刷新,文件名又被重新加载了,并没有达到重命名。请高手指点


因为你只是实现了树控件 的文件名重命名,你要将你右键修改的文件夹名字在 系统中也进行修改。
再加载就不会出现你说的问题了
具体方法通过左边树控件 获取文件路径, 用 rename() copyfile() 这……


树控件不是可以响应一个change的消息,具体是什么忘了, 能够得到你当前选中的树结点指针
你再往上遍历就可以得到你当前选中的文件路径。 如果发生的重命名操作,则用 rename()或 copyfile() 更改你系统的文件名。
大体的我思路就是这样了,不知道对你有没有帮助~