임의의 클래스의 포인터 얻기

 

앞에서 SDI에서 각 클래스의 포인터를 얻는 것은 해 보았습니다. 이번엔 MDI에서 이런 작업을 해 보도록 하죠.

먼저 SDI에서의 작업을 참조하시기 바랍니다. SDI와 MDI는 관련되는 부분이 많으니까요.

 일반적인 MDI 프로그램에서.  

 

 1.애플리케이션 클래스의 포인터를 얻을 때

함수를 사용합니다. 이것은 SDI에서와 동일합니다. App 클래스는 MDI든 SDI든 프로그램 내에서는 하나뿐이니까요. 다음처럼 사용하면 pApp는 애플리케이션 클래스의 인스턴스 포인터를 가리키게 됩니다.

 

2. CMDIFrameWnd의 파생클래스인 메인 프레임 클래스의 포인터를 얻을 때

함수를 사용합니다. 사용법은 SDI에서와 동일합니다.

이렇게 써준 다음에는 pFr은 메인 프레임 클래스의 인스턴스 포인터를 가리키게 됩니다.

 

3. CMDIChildWnd의 파생클래스인 자식 프레임 윈도우의 포인터를 얻을 때

4. 뷰 / 도큐먼트 클래스의 포인터를 얻을 때

 SDI에서 구한 것과 마찬가지 방법을 사용한다. SDI에서는 메인 프레임의 포인터를 얻어 GetActiveView() 또는 GetActiveDocument() 함수를 사용했지만, MDI에서는 차일드 프레임의 포인터를 얻어 거기서 GetActiveView() / GetActiveDocument() 함수를 사용하면 된다. 사용법은 거의 동일하다.

 MDI에서도 SDI와 마찬가지로 도큐먼트나 뷰가 여러 개가 연결될 수 있으므로 그점만 주의해 주면 된다.

 사용법은 다음과 같다.

- the end of this article -