두가지 방법이 있다.
1. 차일드 프레임을 새로 만들고 그곳에서 윈도우 타이틀을 변경한 후, AddDocTemplate 시 새로만든 차일드 프레임으로 런타임프레임 클래스를 지정해주면 된다.
(타이틀 하나 바꾸려고, 자식 도큐먼트마다 차일드프레임 클래스를 만들고싶진 않으므로 자세한 설명은 안함)
2. child document의 윈도우 생성 스타일을 조금 변경한 후, 각 차일드의 View 클래스에서 자신의 타이틀을 설정해준다.
이 방법이 가장 편한방법이며, 자세한 설명은 아래에..
("Test" 라는 이름의 프로젝트이며 "TestChild" 라는 이름의 자식 도큐먼트라고 가정)
1. ChildFrm.h 파일에 BOOL PreCreateWindow(CREATESTRUCT& cs) 의 함수를 재정의한다.
2. ChildFrm.cpp 파일에 위 함수를 구현한다.
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIChildWndEx::PreCreateWindow(cs) )
return FALSE;
cs.style &= ~(LONG)FWS_ADDTOTITLE; //이 플래그를 unset시켜 타이틀을 내맘대로 바꿀 수 있게한다.
return TRUE;
}
# 만약 CTestApp (메인 어플리케이션 클래스)의 AddDocTemplate 에 런타임 클래스로 다른 차일드도큐먼트를 지정했다면
해당 클래스에서 위 1,2 작업을 진행해야한다.
3. CTestChildView.h 에 void OnInitialUpdate() 함수를 재정의한다.
4. CTestChildView.cpp 에 위 함수를 구현한다.
void CTestChildView::OnInitialUpdate(){
CFormView::OnInitialUpdate(); //상속 종류에 따라 CView 일 수도 있음
GetParent()->SetWindowTextW(_T("Changed Title"));
//..
}
5. 빌드 후 확인
'Coding Note' 카테고리의 다른 글
[ExtJs4] nested model (0) | 2013.01.01 |
---|---|
[MFC] MDI에서 child view 접근 (0) | 2012.10.17 |
[MFC] CDockablePane에 CFormView 올리기 (1) | 2012.09.27 |
[winAPI] win32 i/o cancellation (0) | 2012.08.07 |
[MFC] MDI tab에 다른 기능의 자식 추가 (0) | 2012.07.15 |