|
이렇게 빨리 답변을 달아 주셔서 감사합니다..
역쉬나~ 저두 될까 하고 이것 저것 해봤는데, 안돼서 질문을 올린거였는데,....
ㅠㅠ 우울해요~ 앙앙~
혹시 꽁수(resize시..tabset을 강제로 position을 맞춰주는건 해봤는데, 부적절함...)라도 없을까요~??
사정에 의해서... bcb 6을 쓸 수 밖에 없는 상황이라~
실제 BDS2006에서 OnAlignPosition 이벤트 사용하여 해보니~
여기서도 강제로 포지션만 맞춰 줄수 있는 방법으로 해야 되는 거네요~
이렇게 하면, Child 폼을 열었을 경우 Child폼을 Main 밖에 영역으로 가게 되면 메인폼의 Horizontal 스크롤이
tabset에 가려져 안보입니다...
tabset의 align을 bottom으로 할 경우는 MDI가 VIEW영역을 TabSet을 제외 하는데, 강제로 영역을 지정해주면 TabSet
영역까지 포함하는것 같더군요...
OnAlignPosition 함수안의 코딩은 아래와 같이 하였습니다..
TRect rect = this->ClientRect;
if( Control == Panel1 )
{
NewTop = rect.top;
NewLeft = rect.Left;
NewHeight = rect.Height();
}
else
if( Control == DockTabSet1 )
{
NewTop = rect.Bottom - DockTabSet1->Height;
NewLeft = rect.Left + Panel1->Width;
NewWidth = rect.Width() - Panel1->Width;
}
이렇게 하는게 맞는건가요~?? 그리구 AlignInsertBefore 이벤트 함수는 어케 사용하는건지 모르겠네요~
갈쳐주시면 감솨~
==================================================================================================
박지훈.임프 님이 쓰신 글 :
: C++빌더6에서는 불가능합니다.
: Align 자체가 같은 레벨에서는 무조건 아래/위가 왼쪽/오른쪽보다 우선하게 되어있습니다.
: 그런데 님께서 원하시는 디자인을 보니, 아래쪽인 스테이터스바가 최우선, 왼쪽인 패널이 2순위, 다시 아래쪽인 탭셋이
: 3순위이군요. 6 버전에서는 이렇게 순위를 바꿔가면서 Align을 줄 수 있는 방법이 없습니다.
:
: 하지만 C++빌더2006에서는 가능합니다.
: 패널과 탭셋의 Align을 alCustom으로 설정하고 Parent 컨트롤(이 경우에는 폼)의 OnAlignPosition 이벤트나
: AlignInsertBefore 이벤트를 이용하면 됩니다.
:
: 그럼...
:
==================================================================================================
:
: main1114 님이 쓰신 글 :
: : 제가 MDI 환경에서 프로그램을 만들려구 하는데요~ ( 개발툴은 bcb 6.0 )
: :
: : 엑셀처럼.. 좌측에는 Workspace가 있구 우측에는 worksheet를 넣어서 sheet 하나당 MDI Child 폼을
: :
: : 열려구 하거덩요..
: :
: : 근데, 문제는 align 문제가 있어서 이렇게 질문을 올립니다..
: :
: : 메인폼에 Pannel과 Tabset을 올려놓고,
: : Pannel의 Align을 Left로 하고,,, TabSet을 bottom으로 했더니, Tabset이 bottom 영역을 다 차지 하더군요..
: : 첨부 파일의 위쪽 그림처럼....
: :
: : 근데, 저는 첨부 파일의 아래쪽 그림처럼 하고 싶거덩요~
: :
: : 일단, 또다른 panel을 올려놓고, align을 client로 하고 이 panel에 Tabset를 넣어 bottom으로 하면 형태는
: : 나오지만, MDI Child 창이 보이지 않더군요,...
: : 그래서 MDI Child창의 Parent를 위의 panel로 하면 창으로 보이지만 active창의 표시( 폼의 Title부분)이 active
: : 형태로 나타나지 않으며, 가장 큰 문제는 child창을 메인폼의 밖으로 나갔을 때, 스크롤 처리와 MDI 기본 기능인 Horizontal, vertical 정렬을 되지 않습니다..
: :
: :
: : 혹시, 이런 거 경험 해보신분 노하우좀 갈쳐 주세용...
|