0
MFC MDI 응용 프로그램을 사용하고 있습니다. 알림의 모든 하위 창을 닫으 려합니다.MFC MDI 응용 프로그램의 모든 하위 창 닫기
이 코드가 실행CMDIFrameWnd *pFrame = NULL;
CMDIChildWnd *pChild = NULL;
CDocTemplate* pDocTemplate = NULL;
CDocument* pDoc = NULL;
for (POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition(); pos != NULL;)
{
pDocTemplate = AfxGetApp()->GetNextDocTemplate(pos);
for (POSITION pos1 = pDocTemplate->GetFirstDocPosition(); pos1 != NULL;)
{
if (pos1 == NULL)
break;
CDocument* pDoc = pDocTemplate->GetNextDoc(pos1);
for (POSITION pos2 = pDoc->GetFirstViewPosition(); pos2 != NULL;)
{
CView* pView = (CSignalWindow*)pDoc->GetNextView(pos2);
pView->CloseWindow();
}
}
}
는, 디버그 모드에서,이 닫는 모든 창을 보이는 UI가 전체 자식 창 영역에 검은 색 화면을 보여 이러한 목적을 위해,이 코드를 사용하고 있습니다.
모든 하위 창을 닫은 후에이 창 영역을 업데이트하려고합니다.
어떻게이 영역을 업데이트 할 수 있습니까?
다시 칠하는 문제가 전혀 없습니다 '최신 정보'? – user1793036
아마도 Child Frame에 대해 Invalidate()를 호출 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ax04k970.aspx – cha
창을 닫거나 소멸 시키면 해당 부모 창 영역이 다시 그려지는 것이 일반적인 경우입니다. 어떤 조치도 필요 없습니다. 다시 그릴 때 문제가 발생하면 WM_PAINT 처리기가 실패합니다. – xMRi