void navtreeview::newdirectory()
{
HTREEITEM hitem=GetTreeCtrl().GetSelectedItem();
CString str;
str=getpathfromitem(hitem)+_T("\\新建文件夹");
int i=1;
BOOL rename=FALSE;
while(::CreateDirectory(str,NULL)==FALSE)//避开已有的“新建文件夹”自动在文件夹名字上加(i)
{
if(rename==FALSE)
str=str+_T("(")+itos(i)+_T(")");
else
str.SetAt(str.GetLength()-2,(itos(i))[0]);
i+=1;
rename=TRUE;
} if(!GetTreeCtrl().GetChildItem(hitem)) //如果没有子文件夹,加入标记文件夹
{
GetTreeCtrl().InsertItem(_T(""),0,0,hitem);
} GetTreeCtrl().Expand(hitem,TVE_COLLAPSE|TVE_COLLAPSERESET);//重设expand标识
GetTreeCtrl().Expand(hitem,TVE_EXPAND);
}现在的问题是
1 当我在一个已有的(就是不是通过我的程序添加的)文件夹(比如说MUSIC)下创建新文件夹时一切正常,如果MUSIC是个空文件夹,那么newdirectory()加入一个“新建文件夹”后,小+号就会出现,点击后正常展开和收拢。
2 但是如果是在newdirectory()创建的“新建文件夹”里再添加一个子目录“新建文件夹”(我下面用新2表示),就有问题了。 出错过程如下
添加完毕后GetTreeCtrl().InsertItem(_T(""),0,0,hitem)执行----小+号出现-----GetTreeCtrl().Expand(hitem,TVE_EXPAND)执行----小+号变成-号并展开显示新2------(到这里一切正常)-------单击-号收拢,+号出现-------单击+号再也无法展开进驱动器看,新文件夹确实都已经创建了,而且也可以打开。
进资源管理器发现进资源管理器的TREE导航栏在“新建文件夹”左边没有加号!但是的确有一个新2在里边!
请问是哪一步出了纰漏?
{
HTREEITEM hitem=GetTreeCtrl().GetSelectedItem();
CString str;
str=getpathfromitem(hitem)+_T("\\新建文件夹");
int i=1;
BOOL rename=FALSE;
while(::CreateDirectory(str,NULL)==FALSE)//避开已有的“新建文件夹”自动在文件夹名字上加(i)
{
if(rename==FALSE)
str=str+_T("(")+itos(i)+_T(")");
else
str.SetAt(str.GetLength()-2,(itos(i))[0]);
i+=1;
rename=TRUE;
} if(!GetTreeCtrl().GetChildItem(hitem)) //如果没有子文件夹,加入标记文件夹
{
GetTreeCtrl().InsertItem(_T(""),0,0,hitem);
} GetTreeCtrl().Expand(hitem,TVE_COLLAPSE|TVE_COLLAPSERESET);//重设expand标识
GetTreeCtrl().Expand(hitem,TVE_EXPAND);
}现在的问题是
1 当我在一个已有的(就是不是通过我的程序添加的)文件夹(比如说MUSIC)下创建新文件夹时一切正常,如果MUSIC是个空文件夹,那么newdirectory()加入一个“新建文件夹”后,小+号就会出现,点击后正常展开和收拢。
2 但是如果是在newdirectory()创建的“新建文件夹”里再添加一个子目录“新建文件夹”(我下面用新2表示),就有问题了。 出错过程如下
添加完毕后GetTreeCtrl().InsertItem(_T(""),0,0,hitem)执行----小+号出现-----GetTreeCtrl().Expand(hitem,TVE_EXPAND)执行----小+号变成-号并展开显示新2------(到这里一切正常)-------单击-号收拢,+号出现-------单击+号再也无法展开进驱动器看,新文件夹确实都已经创建了,而且也可以打开。
进资源管理器发现进资源管理器的TREE导航栏在“新建文件夹”左边没有加号!但是的确有一个新2在里边!
请问是哪一步出了纰漏?
解决方案 »
- 有关直方图规定化的C++程序
- 为什么再转化一次坐标
- 标准输入的问题
- 在dll里面调用了SetFileAttributes((LPCWSTR)path, 6);为什么没有效果呢?
- DLFDFKLDFK
- 程序员,是我的梦,谁能帮我引上路呢。所有我分都给你们。
- 怎样截取别的程序的数据包?
- 我是应届本科生,签了深圳的一家公司,可是我的英语四级没有考过,不知道能不能顺利解决户口?那位大哥知道请告诉我好不,谢谢!
- 请问一下如何把采集到的数据画成曲线在对话框上显示?
- 菜问:如何 convert from 'struct wParam' to 'unsigned int' ?
- 自定义结构中嵌套CStringlist后,无法delete
- VS版本更新会不会过于频繁?
insertitem(name,0,0,hitem) 都已经通过了的 其中name是“新建文件夹”(也就是上面提到的新2)
问题就是insertitem过后好像什么都没发生过一样!还有一个现象,如果再新建入一个和新2同级的文件夹(比如说新2.1)就一切OK了,+点击正常展开,收拢后也可以正常展开
也就是说只新建入一个就不行,新建两个后恢复正常!