ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MFC] 다른클래스에서 메인 다이얼로그의 포인터 얻어오기 (dialog based)
    0x05 Programming/API / MFC 2010. 10. 11. 21:59


    다이얼로그 기반의 프로젝트로 작업을 하다보면 사용자가 임의로 여러가지 클래스들을 만들어 사용하는 경우가 있다. 일반적으로 프로젝트를 생성하던가  CView, CFormView등의 MFC에 정의되있는 클래스의 상속을 받아서 만들든 다양한 형태의 클래스가 만들어 질 것이다. 

    보통 사용자가 만든 클래스들은 메인 다이얼로그 클래스에 헤더파일을 인클루드하고 인스턴스로 만들어져 사용이 될텐데 경우에 따라 사용자가 만든 클래스에서 메인 다이얼로그의 변수나 함수들을 사용해야 할 경우가 생기게 된다. 이런 경우 메인 다이얼로그의 포인터를 얻는 방법에는 다음의 두 가지가 있다.

    메인 다이얼로그 클래스 : CMainDlg
    임의로 생성된 클래스    : CChild

    라고 했을 때,

    1. CMainDlg.h를 인클루드하고 다음과 같이 멤버변수로 등록하여 사용

    CMainDlg* pMainDlg;

    2. 아래와 같이 AfxGetMainWnd()나 GetParent()를 이용하여 포인터를 가져와서 사용.

    CMainDlg* pMainDlg = (CMainDlg*)::AfxGetMainWnd();
    또는
    CMainDlg* pMainDlg = (CMainDlg*)GetParent();

    위의 방법들을 사용하면 메인 다이얼로그 클래스의 포인터를 얻을 수 있다.

Designed by Tistory.