MFC MDI 창에 메세지 보내기
Programming Lv1/MFC / 2011. 8. 16. 14:40
MDI를 사용하면 다른 창에서 다른창을 호출해야 하는경우가 생긴다.
그경우 창을 구분해야 하는데.. 활성창을 가져오는건 함수가 있어서 간단하다.
메인프레임에서 차일드 객체를 가져와서 활성화되어있는 창을 부르면 포인터를 넘겨준다.
//메인프레임
CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();
//차일드 프레임
CChildFrame *pChild = (CChildFrame*)pFrame->GetActiveFrame();
//활설화 View
CPerformanceMonitoringOneViewView *pView = (CPerformanceMonitoringOneViewView*)pChild->GetActiveView();
창이 여러개일경우 활성창이 아닌 다른창을 가져오는경우는 조금 다르다.
App 에서 Doc를 호출하여 현재 View의 목록을 가져와서 호출한다.
CWinApp* pApp = AfxGetApp();
POSITION posTemplate;
posTemplate = pApp->GetFirstDocTemplatePosition();
while(posTemplate)
{
그경우 창을 구분해야 하는데.. 활성창을 가져오는건 함수가 있어서 간단하다.
메인프레임에서 차일드 객체를 가져와서 활성화되어있는 창을 부르면 포인터를 넘겨준다.
//메인프레임
CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();
//차일드 프레임
CChildFrame *pChild = (CChildFrame*)pFrame->GetActiveFrame();
//활설화 View
CPerformanceMonitoringOneViewView *pView = (CPerformanceMonitoringOneViewView*)pChild->GetActiveView();
창이 여러개일경우 활성창이 아닌 다른창을 가져오는경우는 조금 다르다.
App 에서 Doc를 호출하여 현재 View의 목록을 가져와서 호출한다.
CWinApp* pApp = AfxGetApp();
POSITION posTemplate;
posTemplate = pApp->GetFirstDocTemplatePosition();
while(posTemplate)
{
CDocTemplate* pDocTemplate;
pDocTemplate = pApp->GetNextDocTemplate(posTemplate);
POSITION posDoc = pDocTemplate->GetFirstDocPosition();
while(posDoc)
{
CTestDoc* pDoc2 = (CTestDoc*)pDocTemplate->GetNextDoc(posDoc);
POSITION posView = pDoc2->GetFirstViewPosition();
while(posView)
{
CTestView* pView = (CTestView*)pDoc2->GetNextView(posView);
pView->m_graphDlg->Test();
}
}
}
'Programming Lv1 > MFC' 카테고리의 다른 글
배열 동적 할당 및 배열 개수 (0) | 2011.08.26 |
---|---|
Float Char 배열 byte형태로 bit연산하여 변환 (1) | 2011.08.26 |
MFC 새창열기 변경 (0) | 2011.08.16 |
MFC Pane 닫기버튼 미사용시 레지스트리 초기화 (1) | 2011.08.16 |
MFC 바탕화면 해상도 가져오기 (0) | 2011.08.16 |