C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[3496] treeview 에서요.
심기준 [] 3196 읽음    2000-05-22 00:00
프로그램 실행중에 사용자가 지정하는대로 노드들을 생성해주는 부분을 만들었는데요
사용자가 설정을 하고 실행 버튼을 클릭하면
일단 기존 트리뷰내의 노드들을 클리어 하고
다시 사용자가 정의한 내용대로 노드들을 생성을 합니다.
그런데 새로 만들때마다
차일드 노드들은 감춰진, 즉 어미노드들만 (+)표시를 품고 나타납니다.

노드들을 새로 만들때마다 차일드 노드들까지 모두 펼쳐진 상태로 보이게 하려면 어떻게 해야 할까요.
속성들 중에서 뭐 하나 만지면 될 줄 알고 계속 찝적댔는데 안되더군요.. 제 노력이 부족했는지..
속성중에서 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;
    }
}

입니다.
추가할 부분이 있으면 알려주시면 감사하겠습니다.
그럼 좋은 하루 되세요...^^

+ -

관련 글 리스트
3496 treeview 에서요. 심기준 3196 2000/05/22
3497     Re:treeview 에서요. 3401 2000/05/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.