|
프로그램 실행중에 사용자가 지정하는대로 노드들을 생성해주는 부분을 만들었는데요
사용자가 설정을 하고 실행 버튼을 클릭하면
일단 기존 트리뷰내의 노드들을 클리어 하고
다시 사용자가 정의한 내용대로 노드들을 생성을 합니다.
그런데 새로 만들때마다
차일드 노드들은 감춰진, 즉 어미노드들만 (+)표시를 품고 나타납니다.
노드들을 새로 만들때마다 차일드 노드들까지 모두 펼쳐진 상태로 보이게 하려면 어떻게 해야 할까요.
속성들 중에서 뭐 하나 만지면 될 줄 알고 계속 찝적댔는데 안되더군요.. 제 노력이 부족했는지..
속성중에서 autoexpand를 true로 하니까 맨처음 실행될때만 펼쳐진 상태로 나오더군요
(프로그램 실행되면서 이전 상태를 저장해놓은 파일을 불러서 자동으로 노드를 생성해주도록 했습니다.)
그리구 그 만드는 부분은요.
..
void TForm1::TreeViewInit(BYTE* InitData)
{
TTreeNode* m_TNode;
char buff[10];
BYTE Parent, // Parent 정보
Child; // Child 정보
Parent = InitData[0];
Child = InitData[1];
m_tview->Items->Clear(); // 기존의 트리뷰 내용은 지우고
for(int ndx = 0; ndx < 3; ndx++)
{
if(Parent & 0x01)
{
sprintf(buff,"Parent %d",ndx+1);
m_TNode = TreeView1->Items->Add(TreeView1->Selected,buff);
for(int ndx2 = 0; ndx2 < 2; ndx2++)
{
if(Child & 0x01)
{
sprintf(buff,"Child %d",ndx2+1);
TreeView1->Items->AddChild(m_TNode,buff);
}
Child >>= 1;
}
}
else // 어미 노드가 없으면 자식 노드 정보는 무시한다.
Child >>= 2;
Parent >>= 1;
}
}
입니다.
추가할 부분이 있으면 알려주시면 감사하겠습니다.
그럼 좋은 하루 되세요...^^
|