지금까지 툴 만들기를 따라왔다면, 이제 값을 넣어볼 차례인데...

mfc는 구조가 특이하게 클래스 별로 각자 역할을 분리하고 있다...

우리가 보는 왼쪽 화면은 View 클래스에서 담당하고 있는데..

화면에 무언가를 그리고 싶다면 이 View 클래스를 이용해야한다..

일단 간단한 그림을 띄워보려 했으나.. 실패하였다...

View 접근하기 위해서는

값을 변경할 다이얼로그에 cpp에 메인프레임의 헤더와 뷰 헤더를 추가하고,

CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();

CmapToolView* pView = (CmapToolView*)pFrame->GetActiveView();

이렇게 얻어와서 pView를 이용해서 접근하면 된다고.. 검색해 보면 나온다..

그래서 그렇게 했는데 값이 제대로 들어가지를 않는다 -_ -;;;

내가 잘못넣었는지는 몰라도.. 메인 프레임 값은 잘 가져오는 것 같은데..

GetActiveView()에서 제대로 View 포인터를 리턴하지 않는 듯 했다...

난감한 상황에서 예전에 한번.. 분할 창으로 쓸때... 스플리터로 접근한 방법이

생각났다.. 

MFC는 구조가 언뜻보면 꼬여있는 듯 보이듯이.. 서로 참조할 방법을 여러가지

가지고 있다...

그래서 해결한 방법은.. .메인프레임에서..

CUItoolView* pView = (CUItoolView*)m_wndSplitter.GetPane(0,0) ;

이 한줄로 값을 얻어왔다....

휴.... 스플리터로 분리하면서 0번과 1번으로 분리되었으므로,

0번 윈도우를 참조하면.. 그 것이 바로 View 클래스 인 것이다...

헤매지말고 바로 얻어서 사용하도록 하자...


Posted by 바람처럼..
|