다이얼로그 기반의 프로젝트로 작업을 하다보면 사용자가 임의로 여러가지 클래스들을 만들어 사용하는 경우가 있다. 제너릭으로 만들든 CView, CFormView등의 MFC에 정의되있는 클래스의 상속을 받아서 만들든 다양한 형태의 클래스가 만들어 질 것이다. 보통 사용자가 만든 클래스들은 메인 다이얼로그 클래스에 헤더파일을 인클루드하고 인스턴스로 만들어져 사용이 될텐데 경우에 따라 사용자가 만든 클래스에서 메인 다이얼로그의 변수나 함수들을 사용해야 할 경우가 생기게 된다. 이런 경우 메인 다이얼로그의 포인터를 얻는 방법에는 다음의 두 가지가 있다.
메인 다이얼로그 클래스 : CMainDlg
임의로 생성된 클래스 : CChild
라고 했을 때,
1. CMainDlg.h를 인클루드하고 다음과 같이 멤버변수로 등록하여 사용
CMainDlg* pMainDlg;
2. 아래와 같이 AfxGetMainWnd()나 GetParent()를 이용하여 포인터를 가져와서 사용.
CMainDlg* pMainDlg = (CMainDlg*)::AfxGetMainWnd();
또는
CMainDlg* pMainDlg = (CMainDlg*)GetParent();
위의 방법들을 사용하면 메인 다이얼로그 클래스의 포인터를 얻을 수 있다.
[출처] 임의의 클래스에서 메인 다이얼로그의 포인터를 얻어오는 방법|작성자 에쑤비
'etc..' 카테고리의 다른 글
Union을 사용하는 경우 (0) | 2011.12.18 |
---|---|
c와 cpp 파일을 같이 컴파일할 때 (0) | 2011.12.18 |
쓰레드에서 dialog 의 updatedata()쓰는법 (0) | 2010.11.06 |
프로그래밍 습관 (1) | 2010.11.06 |
컴파일시 실행코드 사이즈 줄이는법 (0) | 2010.09.27 |