MFC의 전역함수 AfxGetMainWnd
일반 윈도우 애플리케이션의 경우 이 함수를 호출하면
CWinApp::m_pMainWnd가 가리키는 포인터를 반환하는 것으로 알려져 있다.
그러나, 애플리케이션의 메인 스레드가 아닌 다른 스레드에서 이 함수를 사용하게 되면
내가 원하는 윈도우와는 다른 윈도우를 반환하게 될 경우가 있다.
MSDN에 의하면, VC 7.0 이상의 버전에 대해서 이 함수는, 스레드가 다른 경우, 호출된 스레드의 메인 윈도우(UI 스레드인 경우)를 반환하게 되거나, 혹은 NULL을 반환하게 된다.(MFC 7.0이상, Worker Thread인 경우). 이것은 6.0과 달라진 부분으로서 다른 스레드에서는 AfxGetMainWnd 함수를 쓸때 주의를 기울여야 함을 뜻한다. 소스 호환성이 사라질 수 있다.
'Programming > MFC' 카테고리의 다른 글
제목 표시줄에 "제목 없음 - " 지우기 (0) | 2006.04.14 |
---|---|
CMainFrame 전역 객체 (0) | 2006.04.13 |
파일 다이얼로그에서 여러개 파일 한번에 오픈하기 (0) | 2006.04.06 |
임의의 클래스의 포인터 얻기 (0) | 2006.03.28 |
DOC와 View 편하게 접근하기 (0) | 2006.03.28 |