다른 view를 참조하는 가장 보편적인 방법을 설명드리죠.. ^^;; 
SDI의 multi view라고 하더라도 당연히 Doc는 하나입니다. 그렇죠?? 
그럴 경우 이렇게 하시면 됩니다. 

먼저 View가 CAaaView와 CBbbView가 있고, Doc의 이름은 CPppDoc라고 합시다. 시작해 보죠.. 

먼저 CPppDoc의 헤더에 View의 포인터를 받을 포인터 객체를 선언합니다. 
CAaaView *pAaaView, *pBbbView; 

그런 다음에 Doc의 생성자에서 각각에게 NULL을 줍니다. 왜냐면 처음 생성되었을 때에는 쓰레기 값을 가지고 있으니까요.. 
CPppDoc() 

pAaaView = NULL; 
pBbbView = NULL; 


이러면 Doc에서 할 일은 끝났구요.. 다음은 각각의 View에서 할 일입니다. 각 View에서 할 일은 OnInitialUpdate에서 수행하면 됩니다. 
CAaaView::OnInitialUpdate() 

CPppDoc *pDoc = GetDocument(); //GetDocument()함수 재정의 하셨죠?? 
pDoc -> pAaaView = this; // 현재 view의 pointer를 여기에 넣어 줍니다. 



///////////////////////////////// 
CBbbView::OnInitialUpdate() 

CPppDoc *pDoc = GetDocument(); 
pDoc -> pBbbView = this; // 마찬가지구요... 


이제부터는 이녀석들을 얻어오기만 하면 되죠.. 예를들어 CAaaView에는 m_edit라는 멤버 변수가 있는데, 이 변수의 값을 CBbbView의 m_string이라는 변수에 얻어오고 싶으시면... 

CPppDoc *pDoc = GetDocument(); 
m_string = pDoc->pAaaView->m_edit; 

'VS 2010' 카테고리의 다른 글

Direct X SDK 설치시 s1023 error  (0) 2014.03.08
블로그 이미지

mind10

,