|
File - New 에서 [Project] 탭의 MDI Application 을 선택하시면 기본적인 MDI 폼이 만들어집니다.
#define MAX_CHILDMDI 100
TMDIChild *ChildList[MAX_CHILDMDI];
위 두줄을 정의시켜주시고,
__fastcall TMainForm::TMainForm(TComponent *Owner) : TForm(Owner)
{
int itCount;
for(itCount = 0; itCount < MAX_CHILDMDI; itCount ++)
ChildList[itCount] = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CreateMDIChild(String Name)
{
TMDIChild *Child;
int itCount, itHeight;
//--- create a new MDI child window ----
Child = new TMDIChild(Application);
Child->Caption = Name;
ChildList[MDIChildCount - 1] = Child;
if(FileExists (Name))
Child->Memo1->Lines->LoadFromFile(Name);
for(itCount = 0; itCount < MAX_CHILDMDI; itCount ++)
if(ChildList[itCount]) {
if(itCount == 0) {
ChildList[itCount]->Left = 0;
ChildList[itCount]->Top = 0;
ChildList[itCount]->Width = 200;
ChildList[itCount]->Height = MainForm->Height - 100;
} else {
itHeight = (MainForm->Height - 100) / (MDIChildCount - 1);
ChildList[itCount]->Left = 201;
ChildList[itCount]->Top = (MainForm->Height - 100) - (itHeight * ((MDIChildCount) - itCount));
ChildList[itCount]->Width = MainForm->Width - 220;
ChildList[itCount]->Height = itHeight;
}
}
}
위 함수가 정의되어 있는 부분에 윗 부분을 추가시킵니다.
새 폼을 추가시키실 때마다 말씀하신 정렬 방식으로 정렬됩니다.
급하게 한거라 폼을 만든다음 지울때등의 변수적인 부분은 모두 빠져 있습니다. --
생초보 님이 쓰신 글 :
: 안녕하세요.
:
: MDI를 쓰다가 정렬에 의문이 생긴 생초보입니다.
:
: MDI에서 정렬을 하면 세로 정렬 가로 정렬이 되는데
:
: 제가 원하는 형태로 정렬을 할수 있는지 예제나 사이트
:
: 아시는분 알려 주십시요.
:
: 예를 들어서...
:
:
: |-----------------------------|
: | | |
: | | |
: | |----------------------|
: | | |
: | | |
: | |----------------------|
: | | |
: | | |
: -------------------------------
:
:
: 항상 이형태를 유지하는 MDI Child 창 정렬.
: Child 창을 추가해도 왼쪽의 긴창은 변하지 않고
: 오른 쪽만 변할 수 있는 방법...
:
:
: 답변 부탁합니다.
:
|