|
무정 님이 쓰신 글 :
: 님이 가르쳐 주신데로 해봤는데 값이 좀 다르게 나오는것 같더군요.
: 제가 잘 못해서 그럴지도 모르지만..
: 선택된 자식의 바로 위의 부모노드 인덱스값이 아닌것 같거든요.
: 그리고 GetNode는 어떤 노드 값을 얻어오는것인지요. 다시 좀 자세히 설명을 부탁드립니다.
:
: 한꼬맹이 님이 쓰신 글 :
: : 부모의 인덱스값 알아보시려면 다음과 같이 해보세요
: :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : TTreeNode *TempNode, *TreeNode = TreeView1->Selected;
: :
: : Caption = TreeNode->Parent->Index;
: : TempNode = TreeView1->Items->GetNode(TreeNode->ItemId) //GetNode()사용법
: : }
: :
: : 그럼 참고하세요...
안녕하십니까
한꼬맹이 입니다.
먼저 GetNode()라는 메소드에대해서 말씀드리자면 트리뷰의 각노드마다 TV_ITEM이라는
구조체로 여러가지 정보를 구할수 있습니다. 트리뷰 각 노드마다 이 구조체를 구별할수 있는
식별자가 HTreeItem형의 아이디입니다. 이 아이디를 가지고 있는 노드의 포인터를 구하는 것이
GetNode()메소드 입니다. 즉 각노드의 유일한 아이디로 노드의 포인터를 구하는 것입니다.
그리고 각 노드는 부모에 대한 상대적인 인덱스와 루트에 대한 절대적인 인덱스가 있습니다.
제가 위에서 보여준 인덱스는 자기부모에 대한 상대적인 인덱스입니다. 다시 말해 위에
인덱스 또한 자기 부모가 붙여준 상대적인 인덱스 입니다. 그래서 자기 부모의 몇번째 자식이냐
에따라 0부터 순차적으로 인덱스값이 부여됩니다. 그런데 저코드는 제가 집접확인해 봤는데
아무이상 없던데.. 혹시 상대적인 인덱스(Index)가 아닌 다른 인덱스(AbsoluteIndex,
ImageIndex,)등등 다른인덱스하고 비교하신 것이 아닌지요...
그럼 참고하세요...
|