1. 전역함수
CWinApp* AfxGetApp();
CWinApp 파생 클래스 참조에 사용
CWnd* AfxGetMainWnd();
메임 프레임 클래스의 인스턴스 포인터 반환
2. 프레임 윈도우 -> 도큐먼트/뷰
CFrameWnd::GetActiveDocument()
도큐먼트 클래스 참조
CFrameWnd::GetActiveView()
현 프레임 윈도우와 연결된 뷰 참조
3. 뷰 -> 프레임윈도우/도큐먼트
CFrameWnd* GetParentFrame() const;
프레임 윈도우 참조
CView::GetDocument()
뷰에 연결된 도큐먼트 참조
static_cast<CMainFrame*>(GetParentFrame())->SetSize(CPoint(480, 350));
메임프레임의 크기 조정 예
4. 도큐먼트 -> 뷰/프레임 윈도우
CDocument::GetFirstViewPosition(), GetNextView()
하나의 도큐먼트에는 여러 개의 뷰가 있다. 처음 뷰와 다음 뷰 참조
CView* pView = GetNextView(pos);
pView->UpdateWindow();
CView* pView = m_viewList.GetHead(); // m_viewList는 도큐먼트에 있는 것으로 뷰들을 관리하는 연결 리스트이다.
pView->UpdateWindow();
AfxGetMainWnd()을 이용해서 프레임 윈도우 참조
5. 기타
원하는 컨트로 참조 획득(전역함수)
CWnd *pWnd = GetDlgItem(컨트롤ID명);
pWnd->GetWIndowRect(&rect);
원하는 스플릿 창으로 이동
SetActiveView((CView*)m_wndSplitter.GetPane(0,1));
m_wndSplitter는 스플릿 객체이고,
(0,1)은 양쪽 창에서 오른쪽창으로 앞에 0은 상하방향, 뒤에 1은 좌우 방향
원하는 스플릿 창을 참조
CWnd *pWndRight = ((CSplitterWnd*)GetParent())->GetPane(0,1);
반응형
'3.구현 > VC++' 카테고리의 다른 글
[MFC] 컨트롤 배경 투명하게 만들기 (0) | 2012.08.14 |
---|---|
[MFC] 여기저기 긁어모은 코드들 (0) | 2012.08.14 |
[MFC] EasySize.h 매크로 풀어논 것 (0) | 2012.08.14 |
[MFC] 256색 이상 툴바 사용 (0) | 2012.08.14 |
[Error]외부참조 LNK1120에러 중 GetRuntimeClass... (0) | 2012.08.14 |