TN025: 문서, 뷰 및 프레임 만들기
[!참고]
온라인 설명서의을 처음 포함 되었습니다 때문 다음 기술 참고 업데이트 되지 않았습니다.따라서 일부 절차 및 항목 오래 되었거나 잘못 된 수 있습니다.최신 정보는 온라인 설명서 색인에서 관심 있는 주제에 대해 검색 하는 것이 좋습니다.
이 참고가 WinApps, DocTemplates, 문서, 프레임 및 뷰 만들기 및 소유권 문제를 설명합니다.
WinApp
하나의 CWinApp 시스템에서 개체입니다.
정적으로 구성 및 프레임 워크의 내부 구현으로 초기화 WinMain.파생 되어야 CWinApp 유용한 작업을 수행 합니다 (예외: 확장 Dll 있어야는 CWinApp 인스턴스-초기화에서 이루어집니다 DllMain 대신).
한 CWinApp 문서 템플릿 목록 개체를 소유 하 고 (한 CPtrList).응용 프로그램 당 하나 이상의 문서 템플릿이 있습니다.DocTemplates 일반적으로 로드 됩니다 (문자열 배열) 리소스 파일에서의 CWinApp::InitInstance.
pTemplate = new CDocTemplate(IDR_MYDOCUMENT, ...);
AddDocTemplate(pTemplate);
한 CWinApp 모든 프레임 windows 응용 프로그램에서 개체를 소유 하 고 있습니다.응용 프로그램의 주 프레임 창에 저장 되어야 합니다 CWinApp::m_pMainWnd. 일반적으로 설정 하면 m_pMainWnd 에 InitInstance Appwizard를 수 있도록 해야 하는 경우 구현 합니다.단일 문서 인터페이스 (SDI)에이 하나는 CFrameWnd 유일한 문서 프레임 창 뿐만 아니라 응용 프로그램을 주 프레임 창으로 사용 합니다.다중 문서 인터페이스 (MDI)이 MDI 프레임입니다 (클래스 CMDIFrameWnd) 모든 자식이 들어 주 응용 프로그램 프레임 창으로 사용 되는 CFrameWnds.각 자식 창 클래스인 CMDIChildWnd (파생 CFrameWnd)와 중 많은 잠재적으로 문서 프레임 창을 사용 합니다.
DocTemplates
CDocTemplate 의 작성자와 관리자의 문서입니다.자체적으로 만든 문서를 소유 합니다.리소스 기반 방법은 아래에 설명 된 응용 프로그램을 사용 하는 경우 해당 파생 필요가 없습니다 CDocTemplate.
SDI 응용 프로그램에서 클래스에 대 한 CSingleDocTemplate 하나 열려 있는 문서를 추적 합니다.MDI 응용 프로그램의 클래스에 대 한 CMultiDocTemplate 목록을 유지 (는 CPtrList)의 현재 열려 해당 서식 파일로 만든 모든 문서.CDocTemplate::AddDocument및 CDocTemplate::RemoveDocument 추가 하거나 서식 파일에서 문서를 제거 하는 방법에 대 한 가상 멤버 함수를 제공 합니다.CDocTemplate친구가 되어 CDocument 보호 된 설정할 수 있도록 CDocument::m_pDocTemplate 문서를 만든 문서 템플릿으로 다시 가리키도록 후방 포인터.
CWinApp기본 처리 OnFileOpen 구현, 모든 문서 서식 파일에 쿼리 합니다.구현은 이미 열려 있는 문서를 찾는 결정 내용에 새 문서를 열고 서식을 포함 됩니다.
CDocTemplateUI 문서 및 프레임에 대 한 바인딩을 관리합니다.
CDocTemplate명명 되지 않은 문서의 개수를 유지합니다.
CDocument
A CDocument 소유는 CDocTemplate.
목록 뷰에 현재 열려 있는 문서를가지고 (파생 CView) 문서 보기 (에 CPtrList).
만들어진 후 서로 연결 된 문서 만들기/뷰를 제거 하지 마십시오.문서를 닫을 때 (즉,-파일/닫기)에 연결 된 모든 뷰를 닫힙니다.마지막 보기는 문서를 닫을 때 (즉, 창을 닫는) 문서가 닫힙니다.
CDocument::AddView, RemoveView 인터페이스는 목록 보기를 유지 하는 데 사용 됩니다.CDocument 의 친구입니다 CView 우리를 설정할 수 있도록는 CView::m_pDocument 후방 포인터입니다.
CFrameWnd
A CFrameWnd (프레임) MFC 1.0에서와 동일한 역할을 하지만 지금 재생 되는 CFrameWnd 클래스가 대부분의 경우 새 클래스를 파생 하지 않고 사용 하도록 설계 되었습니다.파생된 클래스는 CMDIFrameWnd 및 CMDIChildWnd 표준 명령 대부분 이미 구현 되어 있으므로 또한 향상 됩니다.
CFrameWnd Windows 프레임의 클라이언트 영역에서 담당 합니다.일반적으로 프레임의 클라이언트 영역을 채우는 1 주 창입니다.
MDI 프레임 창 클라이언트 영역 차례로 모든 MDI 자식 프레임 창의 부모 MDICLIENT 컨트롤을 채웁니다.SDI 프레임 창 또는 MDI 자식 프레임 창에서 클라이언트 영역의 일반적으로 채워집니다는 CView-window 개체에서 파생 됩니다.경우 CSplitterWnd, 보기의 클라이언트 영역으로 채워집니다는 CSplitterWnd window 개체와 CView-파생 된 창 개체 (1 당 분할 창의) 자식 창으로 만들어집니다는 CSplitterWnd.