|
허접한 답변일지도 모르겠습니다..
그냥.. 직관적으로 보기 편해서 전 이런 방식을 좋아합니다.
M$에서 많이 사용하는 Dialog Bar와 비슷한 처리를 하고 싶으신듯 하네요.
여러 방법이 있겠지만, 저 같은 경우는 다음의 방법을 많이 사용합니다..
메뉴 프레임을 작성해 메뉴 프레임에서는 베이스 폼으로 메시지를 보내서 베이스 폼에서 처리하도록 합니다..
소스로 본다면...
// Main Form 부분에 기본 틀 생성
__fastcall TfmBase::TfmBase(TComponent* Owner)
: TForm(Owner)
{
// 영역 지정... 저는 우선 상/하 두영역으로 나누었습니다.. 이부분은 원하시는 대로 나누세요..
TRect rectMenu = Rect(0, 0, 1024, 60);
TRect rectBaseFull = Rect(0, 60, 1024, 768);
frmMenu = new TfrmMenu(this);
frmMenu->Dock(this, rectMenu);
Frmmain = New Tfrmmain(This);
Frmmain->Dock(This, Rectbasefull);
}
// 이전 생성된 프레임 삭제...
void __fastcall TfmBase::fncBasefrmDelete() // Form Delete
{
// 메인 부분 지우기
if(frmMain)
{
delete frmMain;
frmMain = NULL;
}
...... // 기타 추가된 프레임을 처리해 줍니다.
}
// 메뉴에서 선택된 값을 처리합니다..
void __fastcall TfmBase::fncfrmChange(int nPage) // Form Change
{
fncBasefrmDelete(); // 이전 Base 폼 삭제.
TRect rectBaseFull = Rect(0, 60, 1024, 768); // 그냥 현재 폼의 크기를 가져와도 됩니다. 전 그냥 고정으로 처리합니다..
switch (nPage)
{
case 0:
frmMain = new TfrmMain(this);
frmMain->Dock(this, rectBaseFull);
......
}
}
이런식으로 처리하면 원하는 만큼 위치하도록 만들수 있을 것입니다...
영역지정을 잘하면 여러단의 폼을 위치하도록 할 수도 있고..
하나의 폼으로 처리할수도 있습니다..
참, 책은 워낙 적어서... 추천해드리기가 좀 그렇네요..(저 같은 경우에는 강컴에서 E-Book을 많이 참고했습니다.)
시간이 되시면 델파이 책을 보시는것도 하나의 방법이라고 생각이 듭니다.. 기본 사용법이나.. 참고하는 것은 델파이나 별 차이가 없으니까요..
그리고, 여기 게시판을 참고해도 많은 도움이 될 듯 합니다..
leaderkk 님이 쓰신 글 :
: 폼이 하나있고 여기에 하나의 프레임이 있습니다.
:
: 그리고, 이미 작성된 여러개의 프레임이 따로 있습니다.
:
: 이렇게 작성된 프레임을 각 각의 버튼을 누를때 마다 폼에 있는 프레임의 화면을 바꾸고 싶습니다.
:
: 이렇게 하려면 어떻게 해야 하는지 알려 주시면 감사하겠습니다.
:
: 공부한지 얼마 안되서 어렵네요.
:
: 그리고 괜찮은 책도 추천해 주세요.
:
: 즐거운 하루되세요.
|