这段递归展开树的程序有什么问题吗?
当多子项目多的时候,就死机. HTREEITEM hSubItem ;
if(hItem != NULL)
{
//CString sItem = this->GetItemText(hItem);
TRACE("expand %s \n", sItem);
Expand(hItem,TVE_EXPAND );
hSubItem = GetChildItem(hItem);
}
else
{
return;
}
if(hSubItem!=NULL)
{
expandAllItem(hSubItem);
}
HTREEITEM hSiblingItem = GetNextSiblingItem(hItem);
while((hSiblingItem != NULL)&& (bWithFirstLevel))
{
expandAllItem(hSiblingItem);
hSiblingItem = GetNextSiblingItem(hSiblingItem);
}
当多子项目多的时候,就死机. HTREEITEM hSubItem ;
if(hItem != NULL)
{
//CString sItem = this->GetItemText(hItem);
TRACE("expand %s \n", sItem);
Expand(hItem,TVE_EXPAND );
hSubItem = GetChildItem(hItem);
}
else
{
return;
}
if(hSubItem!=NULL)
{
expandAllItem(hSubItem);
}
HTREEITEM hSiblingItem = GetNextSiblingItem(hItem);
while((hSiblingItem != NULL)&& (bWithFirstLevel))
{
expandAllItem(hSiblingItem);
hSiblingItem = GetNextSiblingItem(hSiblingItem);
}
解决方案 »
- 多线程操作数据库,经常出现 "无法更新;当前被锁定"的错误
- 一直往Edit控件写数据会内存溢出吗
- 敬请指教....
- STL 能否用于Windows编程?如何解决与API的兼容?如何解决Unicode?
- 在windows2003下没法使用CArray了,为什么?
- 送分,图象颜色转换的问题
- 我实在是没有招数了。为什么相同的用法,::Ellipse,而::Rectangle会出问题。300分!
- 请问vc中类似这样的一些代码(应该是叫宏吧)怎样才能看的懂?
- 请教发送电子邮件的程序的问题
- 请给点思路:拼音码问题,输入汉字,返回汉字的拼音码,如f("专家门诊")="ZJMZ"
- 我来试试
- 请问有没有这样的算法在文件里查找指定的内容?急急急
void CMYTreeCtrl::expandAllItem(HTREEITEM hItem,BOOL bWithFirstLevel)
{ HTREEITEM hSubItem ;
if(hItem != NULL)
{
CString sItem = this->GetItemText(hItem);
TRACE("expand %s \n", sItem);
Expand(hItem,TVE_EXPAND );
hSubItem = GetChildItem(hItem);
}
else
{
return;
}
if(hSubItem!=NULL)
{
expandAllItem(hSubItem);
}
HTREEITEM hSiblingItem = GetNextSiblingItem(hItem);
while((hSiblingItem != NULL)&& (bWithFirstLevel))
{
expandAllItem(hSiblingItem);
hSiblingItem = GetNextSiblingItem(hSiblingItem);
}}
你在用这个函数时,只有一个参数,为什么定义时写两个参数呢?理论上没有什么问题了.