十年来,我一直在尝试查找代码,以便仅处理所选的节点,而我花了更多的时间才找到解决方案。我最了解的是节点是全部或部分选定的(csChecked或csMixed状态),但是后来我陷入困境,例如,在节点 Banco(无定居点)中,我不知道不知道如何只处理标记的节点,在这种情况下将是Manzanares。您能给我一些代码吗?
答案 0 :(得分:0)
如果我了解您的情况,则您不关心cSMixed,而仅关心csChecked。在您的示例中,每个“父”节点的值都是子节点的总数。
如果是这种情况,那么您只想检查那些 没有孩子 和被检查。
所以您可能希望代码看起来像这样:
for int(nLoop=0; nLoop<pControl->Items->Count; nLoop++)
{
if( (!(pControl->Items->Item[nLoop]->HasChildren)) &&
(pControl->Items->Item[nLoop]->State==csChecked) )
{
// call your process routine
}
}
对于您要使用的控件,我没有任何参考,所以我不知道它的属性,但是我猜到了您需要什么。如果我了解您要正确执行的操作,那么您应该可以从这里找到自己的出路。