우선 댓글 감사합니다.
TPageControl 의 각 Sheet 에 TFrame 을 붙여주니 깔끔하게 원하던 바를 이루어낸 것 같습니다.
skjoon 님이 쓰신 글 :
: (추가)
: 쓰고 다시보니 PageControl을 원하시는 거였네요..ㅎㅎ
: 뭐.. 비슷하지 않을까요? ^^;;
:
: ---------------------------------------------------
: (원래글)
:
: 비주얼씨에서 하던대로 하시면 됩니다. ^^;;
:
: 10년전에 위자드 폼 만든다고 삽질하던게 생각나네요.
:
: 코드 나갑니다. ~
:
: // 헤더파일입니다.
: class TForm1 : public TForm
: {
: __published: // IDE-managed Components
: TTabControl *TabControl1;
: void __fastcall FormCreate(TObject *Sender);
: void __fastcall FormDestroy(TObject *Sender);
: void __fastcall TabControl1Change(TObject *Sender);
: private: // User declarations
: TForm* m_pTabForms[3]; // 탭에 해당하는 폼의 포인터를 저장할 배열입니다.
: TForm* m_pCurrTabForm; // 현재 활성화된 탭(폼)을 가리키는 포인터입니다.
: public: // User declarations
: __fastcall TForm1(TComponent* Owner);
: };
:
: // 소스입니다.
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: m_pTabForms[0] = new TForm2(NULL);
: m_pTabForms[0]->Parent = TabControl1;
: m_pTabForms[0]->BorderStyle = bsNone;
: m_pTabForms[0]->Align = alClient;
: m_pTabForms[0]->Show(); // 첫번째 탭에 해당하는 폼을 디폴트로 활성화합니다.
:
: m_pTabForms[1] = new TForm3(NULL);
: m_pTabForms[1]->Parent = this->TabControl1;
: m_pTabForms[1]->BorderStyle = bsNone;
: m_pTabForms[1]->Align = alClient;
:
: m_pTabForms[2] = NULL;
:
: m_pCurrTabForm = m_pTabForms[0]; // 현재 활성화된 폼을 저장하구요.
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::FormDestroy(TObject *Sender)
: {
: // 종료하면서 동적으로 생성한 폼을 해제합니다.
: for(int i = 0; i < 3; i++) {
: if(m_pTabForms[i]) {
: delete m_pTabForms[i];
: m_pTabForms[i] = NULL;
: }
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::TabControl1Change(TObject *Sender)
: {
: // 탭이 바뀔때 현재 활성화된 폼을 닫고 탭에 해당하는 폼을 보여줍니다.
: Index = ((TTabControl*)Sender)->TabIndex;
:
: if(m_pCurrTabForm) {
: m_pCurrTabForm->Close();
: m_pCurrTabForm = NULL;
: }
:
: if(m_pTabForms[Index]) {
: m_pTabForms[Index]->Show();
: m_pCurrTabForm = m_pTabForms[Index]; // 현재 활성화된 폼을 저장합니다.
: }
: }
:
: // Form2, Form3을 Project-Option-Application에서 Auto-Create Form 목록에서 빼줘야겠죠. :->
: //---------------------------------------------------------------------------
:
:
: 도움이 되셨길 빕니다.
:
: ben 님이 쓰신 글 :
: : 안녕하세요? 가입하고 처음으로 글을 쓰게 되었습니다.
: : C++ 완전정복에서도 많은 도움 얻고 있습니다.
: : MFC쪽만 하다가 C++빌더 쪽으로 넘어온지 얼마 안되었습니다.
: : 생소한 것도 많지만, 하나하나 알아가는 중입니다.
: :
: : 이제 어느정도 적응이 되어서 Form SDI 환경에서 MiniProject 를 진행중입니다.
: : MFC 에서 사용하던 버릇때문인지..
: :
: : TpageControl 에서 각 Page 마다 CPP를 분리해서 사용하고 싶습니다.
: : 불가능은 없을 것 같은데, 어떻게 해야할지 모르겠군요.
: :
: : 폼에 TpageControl 을 붙이는 순간 종속적이니.. ㅎㅎ;;;
: : MFC에서는 다이얼로그를 따로 만들어서 판에 붙이는 방식으로 했었는데...
: :
: : 궁금합니다.
: :
: : 답변주시면 감사하겠습니다.
: : TpageControl 로 검색해서 찾아보니, 이런 질문은 없는듯해서;; 과감히 올립니다. 큭;;
|