如何解决TTreeView 检查孩子的所有父母
这是一个代码,当用户检查一个父母时,它会检查所有孩子。但是如何检查所有父母检查一个孩子?顺便一提。我尝试使用 Node->getPrevSibling();
但没有效果。
void __fastcall TForm1::UpdateChildStates( TTreeNode *Node )
{
int state = TreeView_GetItemState(TreeView1->Handle,Node->ItemId,TVIS_STATEIMAGEMASK);
int StateIndex = ((state & TVIS_STATEIMAGEMASK)>>12);
Node = Node->getFirstChild();
while( Node )
{
Node->StateIndex = StateIndex;
UpdateChildStates( Node );
Node = Node->getNextSibling();
}
}
//-------------------------------------------------------------------------
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,TMouseButton Button,TShiftState Shift,int X,int Y)
{
TTreeNode *Node;
THitTests HitTests = TreeView1->GetHitTestInfoAt(X,Y);
if( HitTests.Contains(htOnStateIcon) )
Node = TreeView1->GetNodeAt( X,Y );
else return;
if( Node )
{
TreeView1->Items->BeginUpdate();
try {
UpdateChildStates(Node);
}
__finally {
TreeView1->Items->EndUpdate();
}
}
}
解决方法
使用 Node = Node->Parent;
遍历父节点
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。