kyuseo의 게임 프로그래밍
다양한 시점에서 AfxGetMainWnd()가 리턴하는 윈도우는? 본문
개요.. |
AfxGetMainWnd() 함수는 MFC 프로그래밍에서 어플리케이션의 메인 윈도우를 얻기 위하여 자주 사용하는 함수입니다. 하지만 문제는 이 함수가 항상 원하는 윈도우를 리턴하지 않을 수 도 있다는 것입니다. 즉 MVC 구조에서 CMainFrameWnd, 다이얼로그에서 CMainDialog 를 항상 리턴하지 않습니다.
따라서 MainWindow 가 완전하게 생성되기 전에 AfxGetMainWnd() 을 호출할 경우 리턴되는 윈도우를 주의하여 사용해야 합니다. (특히 스플레시 윈도우가 있을 경우)
내용 |
AfxGetMainWnd()는 다음과 같은 순위로 윈도우를 리턴 합니다.
1순위 : CWinThread::m_pActiveWnd (주의 : CWinThread 의 m_pActiveWnd 는 CWnd::GetActiveWindow() 는 다른것입니다.)
2순위: CWinApp::m_pMainWnd
3순위 : CWnd::GetActiveWindow() |