블로그 이미지
평강왕자

카테고리

분류 전체보기 (35)
Programming Lv1 (32)
Programming LV2 (0)
취미 (3)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

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)
{
 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();
  }
 }
}
Posted by 평강왕자
, |

최근에 달린 댓글

글 보관함