본문 바로가기

Coding Note

[MFC] MDI에서 child view 접근

AddDocTemplate(..) 를 통해 부모 도큐먼트에 추가된 자식에 접근하는 방법.

모든 추가된 DocTemplate에 대해 반복하며 모든 Document에 대해서 반복하며 모든 View를 반복한다.



C(프로젝트명)App 클래스에서, 


for(POSITION p1 = GetFirstDocTemplatePosition(); p1 != NULL; ){

CDocTemplate* pTemp = GetNextDocTemplate(p1);


for(POSITION p2 = pTemp->GetFirstDocPosition(); p2 != NULL; ){

CDocument* pDoc = pTemp->GetNextDoc(p2);


for(POSITION p3 = pDoc->GetFirstViewPosition(); p3 != NULL; ){

CView* pView = pDoc->GetNextView(p3);

if( pView->IsKindOf(RUNTIME_CLASS(/*찾으려는 view클래스*/)) ){

//처리..

}

}

}

}


이런식으로 이루어진다.


처음 루프는 등록된 서로다른 도큐먼트에 대해서 반복을 하고,

두번째 루프는 동일한 도큐먼트에서 중복하여 열린 도큐먼트들에 대해서 반복을 한다.

마지막 루프는 열려있는 하나의 도큐먼트에서 중복하여 열린 뷰에대해 반복한다.



'Coding Note' 카테고리의 다른 글

[Design pattern] Strategy  (0) 2013.01.19
[ExtJs4] nested model  (0) 2013.01.01
[MFC] Changing MDI child document's title  (0) 2012.10.08
[MFC] CDockablePane에 CFormView 올리기  (1) 2012.09.27
[winAPI] win32 i/o cancellation  (0) 2012.08.07