화면이 복잡한 경우 PageControl이나 TabControl을 많이 쓰곤 합니다
하지만 너무 화면이 복잡한 경우 화면위에 올라가는 Control이 너무 많아 지므로
control의 이름짓기도 힘들죠
보통 이때 하는 방법으로
Frame이라는것이 있습니다.
Frame을 하나 만들어서 거기에 원하는 코딩을 다 넣고..
그 Frame을 폼위에 올려놓으면 되죠
Design-Time에 폼위에 올려놓으면 PageControl을 쓰는것보다 더 복잡해질수도 있겠죠..
Run-Time에 동적으로 Frame을 new해서 화면의 오른쪽에 올려놓아 보세요
또 다른 방법으로 그냥 Form을 쓰는 방법이 있습니다.( 저는 이방법 많이 씁니다.)
Frame처럼 그냥 Form하나 추가해서 Form에 원하는 Control올리고 코딩을 합니다.
그리고 Run-time때 그 sub-Form을 MainForm의 오른쪽에 올립니다.
Form도 하나의 control이라고 생각하시고 parent만 정해주면 다른 폼이나 control위에 올라갑니다.
TSubForm1 *subform1
TSubForm2 *subform2;
subform1=new TSubForm1(mainForm);
subform1->BorderStyle=bsNone; //Form의 caption을 없애준다.
subform1->Align=alClient;
subform1->Parent= mainForm->RightPanel;
subform1->Show();
subform2=new TSubForm2(mainForm);
subform1->BorderStyle=bsNone;
subform2->Align=alClient;
subform2->Parent= mainForm->RightPanel;
subform2->Show();
//RightPanel은 Base폼의 오른쪽에 올려진 TPanel이라고 가정한것
위와같이 하면 Main폼의 오른쪽 Panel위에 subform1 , subform2가 올라갈것입니다.
그런다음
원하는 것을 보여줄때는
subForm1->BringToFront();
//이렇게 하면 원하는 폼이 제일 앞으로 나오겠죠
//아니면 , 다음과 같은 식으로 해두 되구...
curSubForm->Hide();
subForm1->Show();
curSubForm=subForm1;
여튼 Form도 하나의 WinControl이라 생각하시고 코딩하시면 된다는 뜻입니다.
그럼..
뽀뽀중 님이 쓰신 글 :
: turbo c++ explorer로 간단한 프로그램을 작성중입니다.
:
: 그런데, 화면 구성중인데... 고민 거리가 있습니다.
:
:
: 탐색기 처럼 왼쪽에는 treeview 로 메뉴를 만들고..
:
: 오른쪽엔 다양한 형태의 입력이 가능한 수많은 버튼을 넣으려 합니다.
:
: 트리뷰의 메뉴별 화면 구성을 다르게 해야 합니다.
:
: 다양한 데이터 입력을 해야 하는데,,,
:
:
: 페이지 컨트롤을 사용하려 하니, 탭이 너무 많아 질테고....
:
: 어떤 컨크롤을 써야 적당한지 모르겠습니다.
:
:
: 만약 각 다양한 폼을 만든후 오른쪽 화면구성에 넣을수 있는 방법이 있나요?