다음을 통해 공유


CView 수업

사용자 정의 뷰 클래스에 대한 기본 기능을 제공합니다.

구문

class AFX_NOVTABLE CView : public CWnd

멤버

보호된 생성자

속성 설명
CView::CView CView 개체를 생성합니다.

공용 메서드

이름 설명
CView::DoPreparePrinting 인쇄 대화 상자를 표시하고 프린터 디바이스 컨텍스트를 만듭니다. 멤버 함수를 재정의할 때 호출합니다 OnPreparePrinting .
CView::GetDocument 뷰와 연결된 문서를 반환합니다.
CView::IsSelected 문서 항목이 선택되었는지 여부를 테스트합니다. OLE 지원에 필요합니다.
CView::OnDragEnter 항목이 뷰의 끌어서 놓기 영역으로 처음 끌 때 호출됩니다.
CView::OnDragLeave 끌어온 항목이 보기의 끌어서 놓기 영역을 떠날 때 호출됩니다.
CView::OnDragOver 항목이 보기의 끌어서 놓기 영역 위로 끌 때 호출됩니다.
CView::OnDragScroll 커서를 창의 스크롤 영역으로 끌지 여부를 확인하기 위해 호출됩니다.
CView::OnDrop 항목이 뷰의 끌어서 놓기 영역인 기본 처리기에 떨어졌을 때 호출됩니다.
CView::OnDropEx 항목이 뷰의 끌어서 놓기 영역인 기본 처리기에 떨어졌을 때 호출됩니다.
CView::OnInitialUpdate 뷰가 문서에 처음 첨부된 후 호출됩니다.
CView::OnPrepareDC 화면 표시를 OnDraw 위해 멤버 함수가 호출되거나 인쇄 또는 OnPrint 인쇄 미리 보기를 위해 멤버 함수가 호출되기 전에 호출됩니다.
CView::OnScroll OLE 항목이 보기의 테두리를 넘어 끌 때 호출됩니다.
CView::OnScrollBy 현재 위치 OLE 항목이 포함된 뷰를 스크롤할 때 호출됩니다.

보호된 메서드

속성 설명
CView::OnActivateFrame 뷰가 포함된 프레임 창이 활성화되거나 비활성화될 때 호출됩니다.
CView::OnActivateView 뷰가 활성화될 때 호출됩니다.
CView::OnBeginPrinting 인쇄 작업이 시작될 때 호출됩니다. GDI(그래픽 디바이스 인터페이스) 리소스를 할당하도록 재정의합니다.
CView::OnDraw 화면 표시, 인쇄 또는 인쇄 미리 보기를 위해 문서의 이미지를 렌더링하기 위해 호출됩니다. 구현이 필요합니다.
CView::OnEndPrinting 인쇄 작업이 종료되면 호출됩니다. 재정의하여 GDI 리소스 할당을 취소합니다.
CView::OnEndPrintPreview 미리 보기 모드가 종료될 때 호출됩니다.
CView::OnPreparePrinting 문서를 인쇄하거나 미리 보기 전에 호출합니다. [인쇄] 대화 상자를 초기화하려면 재정의합니다.
CView::OnPrint 문서 페이지를 인쇄하거나 미리 보기 위해 호출됩니다.
CView::OnUpdate 문서가 수정되었음을 보기에 알리기 위해 호출됩니다.

설명

보기는 문서에 첨부되고 문서와 사용자 간의 중개자 역할을 합니다. 보기는 화면이나 프린터에서 문서의 이미지를 렌더링하고 사용자 입력을 문서에 대한 작업으로 해석합니다.

보기는 프레임 창의 자식입니다. 분할자 창의 경우와 같이 둘 이상의 보기가 프레임 창을 공유할 수 있습니다. 뷰 클래스, 프레임 창 클래스 및 문서 클래스 간의 관계는 개체에 의해 CDocTemplate 설정됩니다. 사용자가 새 창을 열거나 기존 창을 분할하면 프레임워크는 새 보기를 생성하고 문서에 연결합니다.

보기는 한 문서에만 첨부할 수 있지만 문서가 분할자 창이나 여러 MDI(문서 인터페이스) 응용 프로그램의 여러 자식 창에 표시되는 경우와 같이 문서에 한 번에 여러 보기가 첨부될 수 있습니다. 애플리케이션은 지정된 문서 형식에 대해 다양한 유형의 보기를 지원할 수 있습니다. 예를 들어, 단어 처리 프로그램은 문서의 전체 텍스트 보기와 섹션 머리글만 표시하는 개요 보기를 모두 제공할 수 있습니다. 분할자 창을 사용하는 경우 이러한 다양한 유형의 보기를 별도의 프레임 창이나 단일 프레임 창의 별도 창에 배치할 수 있습니다.

보기는 메뉴, 도구 모음 또는 스크롤 막대의 명령뿐만 아니라 키보드 입력, 마우스 입력 또는 끌어서 놓기를 통한 입력과 같은 여러 가지 유형의 입력을 처리하는 역할을 담당할 수 있습니다. 보기는 프레임 창에서 전달된 명령을 받습니다. 뷰가 지정된 명령을 처리하지 않으면 해당 명령을 연결된 문서로 전달합니다. 모든 명령 대상과 마찬가지로 보기는 메시지 맵을 통해 메시지를 처리합니다.

뷰는 문서의 데이터를 표시하고 수정하지만 저장하지는 않습니다. 문서에서는 해당 데이터에 대한 필요한 세부 정보를 뷰에 제공합니다. 뷰에서 문서의 데이터 멤버에 직접 액세스하도록 하거나 뷰 클래스에서 호출할 문서 클래스의 멤버 함수를 제공할 수 있습니다.

문서의 데이터가 변경되면 변경 내용을 담당하는 뷰는 일반적으로 문서에 대한 함수를 호출 CDocument::UpdateAllViews 하며, 이 함수는 각각에 대한 멤버 함수를 호출 OnUpdate 하여 다른 모든 보기를 알 수 있습니다. 기본 구현은 OnUpdate 뷰의 전체 클라이언트 영역을 무효화합니다. 문서의 수정된 부분에 매핑되는 클라이언트 영역의 영역만 무효화하도록 재정의할 수 있습니다.

사용 CView하려면 클래스를 파생시키고 멤버 함수를 OnDraw 구현하여 화면 표시를 수행합니다. 인쇄 및 인쇄 미리 보기를 수행하는 데 사용할 OnDraw 수도 있습니다. 프레임워크는 문서 인쇄 및 미리 보기를 위한 인쇄 루프를 처리합니다.

뷰는 및 멤버 함수를 사용하여 CWnd::OnHScroll CWnd::OnVScroll 스크롤 막대 메시지를 처리합니다. 이러한 함수에서 스크롤 막대 메시지 처리를 구현하거나 파생 클래스 CScrollView 를 사용하여 CView 스크롤을 처리할 수 있습니다.

CScrollView또한 Microsoft Foundation 클래스 라이브러리는 다음에서 CView파생된 9개의 다른 클래스를 제공합니다.

  • CCtrlView- 문서 사용을 허용하는 보기 - 트리, 목록 및 서식 있는 편집 컨트롤을 사용하여 아키텍처를 봅니다.

  • CDaoRecordView- 대화 상자 컨트롤에 데이터베이스 레코드를 표시하는 뷰입니다.

  • CEditView- 간단한 여러 줄 텍스트 편집기를 제공하는 뷰입니다. 개체를 CEditView 대화 상자의 컨트롤과 문서의 보기로 사용할 수 있습니다.

  • CFormView대화 상자 컨트롤을 포함하고 대화 상자 템플릿 리소스를 기반으로 하는 스크롤 가능한 보기입니다.

  • CListView- 목록 컨트롤이 있는 뷰 아키텍처 - 문서 사용을 허용하는 뷰입니다.

  • CRecordView- 대화 상자 컨트롤에 데이터베이스 레코드를 표시하는 뷰입니다.

  • CRichEditView- 문서 사용을 허용하는 보기 - 다양한 편집 컨트롤이 있는 뷰 아키텍처입니다.

  • CScrollView- 스크롤 지원을 자동으로 제공하는 뷰입니다.

  • CTreeView- 문서 사용을 허용하는 뷰 - 트리 컨트롤이 있는 뷰 아키텍처입니다.

클래스에는 CView 프레임워크에서 인쇄 미리 보기를 수행하는 데 사용되는 파생 구현 클래스도 있습니다 CPreviewView. 이 클래스는 도구 모음, 단일 페이지 또는 두 페이지 미리 보기, 확대/축소, 즉 미리 보기 이미지를 확대하는 등 인쇄 미리 보기 창에 고유한 기능을 지원합니다. 인쇄 미리 보기 모드에서 편집을 지원하려는 경우와 같이 인쇄 미리 보기를 위해 고유한 인터페이스를 구현하려는 경우가 아니면 멤버 함수를 호출하거나 재정 CPreviewView의할 필요가 없습니다. 사용에 CView대한 자세한 내용은 문서/뷰 아키텍처인쇄를 참조하세요. 또한 인쇄 미리 보기 사용자 지정에 대한 자세한 내용은 Technical Note 30을 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CView

요구 사항

머리글: afxwin.h

CView::CView

CView 개체를 생성합니다.

CView();

설명

프레임워크는 새 프레임 창을 만들거나 창을 분할할 때 생성자를 호출합니다. 문서가 첨부된 OnInitialUpdate 후 뷰를 초기화하도록 멤버 함수를 재정의합니다.

CView::DoPreparePrinting

재정의 OnPreparePrinting 에서 이 함수를 호출하여 인쇄 대화 상자를 호출하고 프린터 디바이스 컨텍스트를 만듭니다.

BOOL DoPreparePrinting(CPrintInfo* pInfo);

매개 변수

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

Return Value

인쇄 또는 인쇄 미리 보기를 시작할 수 있는 경우 0이 아닌 경우 작업이 취소된 경우 0입니다.

설명

이 함수의 동작은 인쇄 또는 인쇄 미리 보기를 위해 호출되는지 여부에 따라 달라집니다(매개 변수의 pInfo 멤버에 의해 m_bPreview 지정됨). 파일이 인쇄되는 경우 이 함수는 가리키는 구조 pInfo 의 값을 CPrintInfo 사용하여 인쇄 대화 상자를 호출합니다. 사용자가 대화 상자를 닫은 후에는 사용자가 대화 상자에 지정한 설정에 따라 프린터 디바이스 컨텍스트를 만들고 매개 변수를 통해 pInfo 이 디바이스 컨텍스트를 반환합니다. 이 디바이스 컨텍스트는 문서를 인쇄하는 데 사용됩니다.

파일을 미리 보는 경우 이 함수는 현재 프린터 설정을 사용하여 프린터 디바이스 컨텍스트를 만듭니다. 이 디바이스 컨텍스트는 미리 보기 중에 프린터를 시뮬레이션하는 데 사용됩니다.

CView::GetDocument

이 함수를 호출하여 뷰의 문서에 대한 포인터를 가져옵니다.

CDocument* GetDocument() const;

Return Value

뷰와 연결된 개체에 CDocument 대한 포인터입니다. NULL 보기가 문서에 첨부되지 않은 경우

설명

이렇게 하면 문서의 멤버 함수를 호출할 수 있습니다.

CView::IsSelected

프레임워크에서 호출하여 지정된 문서 항목이 선택되었는지 여부를 확인합니다.

virtual BOOL IsSelected(const CObject* pDocItem) const;

매개 변수

pDocItem
테스트 중인 문서 항목을 가리킵니다.

Return Value

지정한 문서 항목이 선택된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수의 기본 구현은 .FALSE 개체를 사용하여 CDocItem 선택을 구현하는 경우 이 함수를 재정의합니다. 보기에 OLE 항목이 포함된 경우 이 함수를 재정의해야 합니다.

CView::OnActivateFrame

보기가 포함된 프레임 창이 활성화되거나 비활성화될 때 프레임워크에서 호출됩니다.

virtual void OnActivateFrame(
    UINT nState,
    CFrameWnd* pFrameWnd);

매개 변수

nState
프레임 창이 활성화되거나 비활성화되는지 여부를 지정합니다. 다음 값 중 하나일 수 있습니다.

  • WA_INACTIVE 프레임 창이 비활성화되고 있습니다.

  • WA_ACTIVE 프레임 창은 마우스 클릭 이외의 일부 방법을 통해 활성화됩니다(예: 키보드 인터페이스를 사용하여 창을 선택).

  • WA_CLICKACTIVE 마우스 클릭으로 프레임 창이 활성화되고 있습니다.

pFrameWnd
활성화할 프레임 창에 대한 포인터입니다.

설명

보기와 연결된 프레임 창이 활성화되거나 비활성화될 때 특수 처리를 수행하려는 경우 이 멤버 함수를 재정의합니다. 예를 들어 CFormView 포커스가 있는 컨트롤을 저장하고 복원할 때 이 재정의를 수행합니다.

CView::OnActivateView

보기가 활성화되거나 비활성화될 때 프레임워크에서 호출됩니다.

virtual void OnActivateView(
    BOOL bActivate,
    CView* pActivateView,
    CView* pDeactiveView);

매개 변수

bActivate
뷰가 활성화되고 있는지 또는 비활성화되는지를 나타냅니다.

pActivateView
활성화 중인 뷰 개체를 가리킵니다.

pDeactiveView
비활성화 중인 뷰 개체를 가리킵니다.

설명

이 함수의 기본 구현은 포커스를 활성화되는 뷰로 설정합니다. 뷰가 활성화되거나 비활성화될 때 특수 처리를 수행하려는 경우 이 함수를 재정의합니다. 예를 들어 활성 뷰와 비활성 보기를 구분하는 특수한 시각적 신호를 제공하려는 경우 매개 변수를 bActivate 검사하고 그에 따라 보기의 모양을 업데이트합니다.

pActivateView 활성 보기에서 변경 없이 애플리케이션의 주 프레임 창이 활성화된 경우와 pDeactiveView 같은 보기를 가리킵니다. 예를 들어 포커스가 애플리케이션 내의 한 보기에서 다른 보기로 또는 MDI 자식 창 간에 전환할 때 다른 애플리케이션에서 이 보기로 전송되는 경우와 같습니다. 이렇게 하면 뷰가 필요한 경우 해당 색상표를 다시 실현할 수 있습니다.

이러한 매개 변수는 반환되는 것과 다른 CFrameWnd::GetActiveView 뷰를 사용하여 호출될 때 CFrameWnd::SetActiveView 다릅니다. 분할자 창에서 가장 자주 발생합니다.

CView::OnBeginPrinting

OnPreparePrinting 이 호출된 후 인쇄 또는 인쇄 미리 보기 작업을 시작할 때 프레임워크에서 호출됩니다.

virtual void OnBeginPrinting(
    CDC* pDC,
    CPrintInfo* pInfo);

매개 변수

pDC
프린터 디바이스 컨텍스트를 가리킵니다.

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

설명

이 함수의 기본 구현은 아무 작업도 수행하지 않습니다. 인쇄용으로 특별히 필요한 GDI 리소스(예: 펜 또는 글꼴)를 할당하려면 이 함수를 재정의합니다. GDI 개체를 사용하는 각 페이지의 멤버 함수 내에서 OnPrint 디바이스 컨텍스트로 GDI 개체를 선택합니다. 동일한 view 개체를 사용하여 화면 표시와 인쇄를 모두 수행하는 경우 각 화면 표시에 필요한 GDI 리소스에 별도의 변수를 사용합니다. 이렇게 하면 인쇄하는 동안 화면을 업데이트할 수 있습니다.

또한 이 함수를 사용하여 프린터 디바이스 컨텍스트의 속성에 따라 초기화를 수행할 수 있습니다. 예를 들어 문서를 인쇄하는 데 필요한 페이지 수는 사용자가 인쇄 대화 상자에서 지정한 설정(예: 페이지 길이)에 따라 다를 수 있습니다. 이러한 경우 멤버 함수에서 OnPreparePrinting 일반적으로 문서 길이를 지정할 수 없습니다. 대화 상자 설정에 따라 프린터 장치 컨텍스트가 만들어질 때까지 기다려야 합니다. OnBeginPrinting 는 프린터 장치 컨텍스트를 나타내는 개체에 CDC 대한 액세스를 제공하는 첫 번째 재정의 가능한 함수이므로 이 함수에서 문서 길이를 설정할 수 있습니다. 이때까지 문서 길이를 지정하지 않으면 인쇄 미리 보기 중에 스크롤 막대가 표시되지 않습니다.

CView::OnDragEnter

마우스가 먼저 놓기 대상 창의 스크롤하지 않는 영역에 들어갈 때 프레임워크에서 호출됩니다.

virtual DROPEFFECT OnDragEnter(
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

매개 변수

pDataObject
뷰의 COleDataObject 놓기 영역으로 끌어서 놓는 것을 가리킵니다.

dwKeyState
한정자 키의 상태를 포함합니다. 이 조합은 다음과 같은 MK_CONTROL수의 조합입니다. , , MK_SHIFTMK_ALT, MK_LBUTTONMK_MBUTTONMK_RBUTTON.

point
보기의 클라이언트 영역을 기준으로 현재 마우스 위치입니다.

Return Value

열거형 형식의 DROPEFFECT 값으로, 사용자가 개체를 이 위치에 놓을 때 발생할 놓기 유형을 나타냅니다. 일반적으로 삭제 유형은 로 표시된 dwKeyState현재 키 상태에 따라 달라집니다. 키 상태 DROPEFFECT 와 값의 표준 매핑은 다음과 같습니다.

  • DROPEFFECT_NONE 이 창에서 데이터 개체를 삭제할 수 없습니다.

  • DROPEFFECT_LINK 개체 MK_CONTROL|MK_SHIFT 와 해당 서버 간의 연결을 만듭니다.

  • DROPEFFECT_COPY 삭제 MK_CONTROL 된 개체의 복사본을 만듭니다.

  • DROPEFFECT_MOVEMK_ALT 삭제된 개체의 복사본을 만들고 원래 개체를 삭제합니다. 보기에서 이 데이터 개체를 수락할 수 있는 경우 이는 일반적으로 기본 드롭 효과입니다.

자세한 내용은 MFC 고급 개념 샘플을 OCLIENT참조하세요.

설명

기본 구현은 아무 작업도 수행하지 않으며 반환하는 것입니다 DROPEFFECT_NONE.

이 함수를 재정의하여 멤버 함수에 대한 이후 호출을 준비합니다 OnDragOver . 나중에 멤버 함수에서 사용하려면 데이터 개체에서 OnDragOver 필요한 모든 데이터를 이 시점에서 검색해야 합니다. 또한 사용자에게 시각적 피드백을 제공하기 위해 이 시점에서 보기를 업데이트해야 합니다. 자세한 내용은 OLE 끌어서 놓기: 놓기 대상 구현 문서를 참조하세요.

CView::OnDragLeave

마우스가 해당 창의 유효한 놓기 영역 밖으로 이동될 때 끌기 작업 중에 프레임워크에서 호출됩니다.

virtual void OnDragLeave();

설명

개체를 끌어서 놓는 동안 OnDragEnter 시각적 사용자 피드백을 제거하는 등 현재 보기에서 수행된 작업이나 OnDragOver 호출을 정리해야 하는 경우 이 함수를 재정의합니다.

CView::OnDragOver

마우스를 놓기 대상 창 위로 이동할 때 끌기 작업 중에 프레임워크에서 호출됩니다.

virtual DROPEFFECT OnDragOver(
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

매개 변수

pDataObject
놓기 COleDataObject 대상 위로 끌어서 놓기 대상을 가리킵니다.

dwKeyState
한정자 키의 상태를 포함합니다. 이 조합은 다음과 같은 MK_CONTROL수의 조합입니다. , , MK_SHIFTMK_ALT, MK_LBUTTONMK_MBUTTONMK_RBUTTON.

point
뷰 클라이언트 영역을 기준으로 현재 마우스 위치입니다.

Return Value

열거형 형식의 DROPEFFECT 값으로, 사용자가 개체를 이 위치에 놓을 때 발생할 놓기 유형을 나타냅니다. 드롭 유형은 다음과 같이 dwKeyState현재 키 상태에 따라 달라지는 경우가 많습니다. 키 상태 DROPEFFECT 와 값의 표준 매핑은 다음과 같습니다.

  • DROPEFFECT_NONE 이 창에서 데이터 개체를 삭제할 수 없습니다.

  • DROPEFFECT_LINK 개체 MK_CONTROL|MK_SHIFT 와 해당 서버 간의 연결을 만듭니다.

  • DROPEFFECT_COPY 삭제 MK_CONTROL 된 개체의 복사본을 만듭니다.

  • DROPEFFECT_MOVEMK_ALT 삭제된 개체의 복사본을 만들고 원래 개체를 삭제합니다. 보기에서 데이터 개체를 수락할 수 있는 경우 이는 일반적으로 기본 드롭 효과입니다.

자세한 내용은 MFC 고급 개념 샘플을 OCLIENT참조하세요.

설명

기본 구현은 아무 작업도 수행하지 않으며 반환하는 것입니다 DROPEFFECT_NONE.

끌기 작업 중에 사용자에게 시각적 피드백을 제공하도록 이 함수를 재정의합니다. 이 함수는 지속적으로 호출되므로 해당 함수 내에 포함된 모든 코드는 최대한 최적화되어야 합니다. 자세한 내용은 OLE 끌어서 놓기: 놓기 대상 구현 문서를 참조하세요.

CView::OnDragScroll

호출하기 전에 프레임워크에서 호출 OnDragEnter 하거나 OnDragOver 점이 스크롤 영역에 있는지 여부를 확인합니다.

virtual DROPEFFECT OnDragScroll(
    DWORD dwKeyState,
    CPoint point);

매개 변수

dwKeyState
한정자 키의 상태를 포함합니다. 이 조합은 다음과 같은 MK_CONTROL수의 조합입니다. , , MK_SHIFTMK_ALT, MK_LBUTTONMK_MBUTTONMK_RBUTTON.

point
화면을 기준으로 커서의 위치를 픽셀 단위로 포함합니다.

Return Value

열거형 형식의 DROPEFFECT 값으로, 사용자가 개체를 이 위치에 놓을 때 발생할 놓기 유형을 나타냅니다. 일반적으로 삭제 유형은 로 표시된 dwKeyState현재 키 상태에 따라 달라집니다. 키 상태 DROPEFFECT 와 값의 표준 매핑은 다음과 같습니다.

  • DROPEFFECT_NONE 이 창에서 데이터 개체를 삭제할 수 없습니다.

  • DROPEFFECT_LINK 개체 MK_CONTROL|MK_SHIFT 와 해당 서버 간의 연결을 만듭니다.

  • DROPEFFECT_COPY 삭제 MK_CONTROL 된 개체의 복사본을 만듭니다.

  • DROPEFFECT_MOVEMK_ALT 삭제된 개체의 복사본을 만들고 원래 개체를 삭제합니다.

  • DROPEFFECT_SCROLL 끌기 스크롤 작업이 수행되거나 대상 보기에서 발생 중임을 나타냅니다.

자세한 내용은 MFC 고급 개념 샘플을 OCLIENT참조하세요.

설명

이 이벤트에 대해 특별한 동작을 제공하려는 경우 이 함수를 재정의합니다. 커서를 각 창의 테두리 내의 기본 스크롤 영역으로 끌면 기본 구현은 창을 자동으로 스크롤합니다. 자세한 내용은 OLE 끌어서 놓기: 놓기 대상 구현 문서를 참조하세요.

CView::OnDraw

문서의 이미지를 렌더링하기 위해 프레임워크에서 호출됩니다.

virtual void OnDraw(CDC* pDC) = 0;

매개 변수

pDC
문서의 이미지를 렌더링하는 데 사용할 디바이스 컨텍스트를 가리킵니다.

설명

프레임워크는 이 함수를 호출하여 화면 표시, 인쇄 및 인쇄 미리 보기를 수행하고 각 경우에 다른 디바이스 컨텍스트를 전달합니다. 기본 구현은 없습니다.

문서의 보기를 표시하려면 이 함수를 재정의해야 합니다. 매개 변수가 가리키는 개체를 사용하여 CDC GDI(그래픽 디바이스 인터페이스) 호출을 pDC 수행할 수 있습니다. 그리기 전에 펜 또는 글꼴과 같은 GDI 리소스를 디바이스 컨텍스트로 선택한 다음 나중에 선택 취소할 수 있습니다. 그리기 코드는 디바이스 독립적일 수 있는 경우가 많습니다. 즉, 이미지를 표시하는 디바이스 유형에 대한 정보가 필요하지 않습니다.

그리기를 최적화하려면 디바이스 컨텍스트의 멤버 함수를 호출 RectVisible 하여 지정된 사각형을 그릴지 여부를 확인합니다. 일반 화면 표시와 인쇄를 구분해야 하는 경우 디바이스 컨텍스트의 IsPrinting 멤버 함수를 호출합니다.

CView::OnDrop

사용자가 유효한 놓기 대상을 통해 데이터 개체를 해제할 때 프레임워크에서 호출됩니다.

virtual BOOL OnDrop(
    COleDataObject* pDataObject,
    DROPEFFECT dropEffect,
    CPoint point);

매개 변수

pDataObject
놓기 COleDataObject 대상에 놓인 대상을 가리킵니다.

dropEffect
사용자가 요청한 삭제 효과입니다.

  • DROPEFFECT_COPY 삭제할 데이터 개체의 복사본을 만듭니다.

  • DROPEFFECT_MOVE 데이터 개체를 현재 마우스 위치로 이동합니다.

  • DROPEFFECT_LINK 데이터 개체와 해당 서버 간에 링크를 만듭니다.

point
뷰 클라이언트 영역을 기준으로 현재 마우스 위치입니다.

Return Value

삭제에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.

설명

기본 구현은 아무 작업도 수행 하지 하 고 반환 FALSE합니다.

이 함수를 재정의하여 보기의 클라이언트 영역에 OLE 드롭 효과를 구현합니다. 데이터 개체는 클립보드 데이터 형식 및 지정된 지점에서 삭제된 데이터를 통해 pDataObject 검사할 수 있습니다.

참고 항목

이 뷰 클래스에 재정의가 있는 경우 프레임워크는 이 함수를 OnDropEx 호출하지 않습니다.

CView::OnDropEx

사용자가 유효한 놓기 대상을 통해 데이터 개체를 해제할 때 프레임워크에서 호출됩니다.

virtual DROPEFFECT OnDropEx(
    COleDataObject* pDataObject,
    DROPEFFECT dropDefault,
    DROPEFFECT dropList,
    CPoint point);

매개 변수

pDataObject
놓기 COleDataObject 대상에 놓인 대상을 가리킵니다.

dropDefault
사용자가 현재 키 상태에 따라 기본 놓기 작업에 대해 선택한 효과입니다. DROPEFFECT_NONE일 수 있습니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.

dropList
드롭 소스에서 지원하는 드롭 효과 목록입니다. 삭제 효과 값은 비트 OR( |) 연산을 사용하여 결합할 수 있습니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.

point
뷰 클라이언트 영역을 기준으로 현재 마우스 위치입니다.

Return Value

로 지정된 point위치에서의 놓기 시도에서 발생한 드롭 효과입니다. 이 값은 으로 표시된 dropEffectList값 중 하나여야 합니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.

설명

기본 구현은 아무 작업도 수행하지 않으며 더미 값(-1)을 반환하여 프레임워크가 처리기를 호출 OnDrop 해야 함을 나타내는 것입니다.

마우스 오른쪽 단추 끌어서 놓기의 효과를 구현하려면 이 함수를 재정의합니다. 마우스 오른쪽 단추 끌어서 놓기는 일반적으로 오른쪽 마우스 단추가 놓일 때 선택 메뉴가 표시됩니다.

재정의 OnDropEx 는 마우스 오른쪽 단추를 쿼리해야 합니다. 처리기에서 마우스 오른쪽 단추 상태를 호출 GetKeyState 하거나 저장할 수 있습니다 OnDragEnter .

  • 마우스 오른쪽 단추가 다운된 경우 재정의는 드롭 소스에서 드롭 효과를 지원하는 팝업 메뉴를 표시해야 합니다.

    • 드롭 소스에서 지원하는 드롭 효과를 확인하려면 검사 dropList 합니다. 팝업 메뉴에서 이러한 작업만 사용하도록 설정합니다.

    • 에 따라 dropDefault기본 작업을 설정하는 데 사용합니다SetMenuDefaultItem.

    • 마지막으로 팝업 메뉴에서 사용자 선택 항목으로 표시된 작업을 수행합니다.

  • 마우스 오른쪽 단추가 다운되지 않은 경우 재정의에서 이를 표준 드롭 요청으로 처리해야 합니다. 에 지정된 dropDefault드롭 효과를 사용합니다. 또는 재정의가 더미 값(-1)을 반환하여 이 삭제 작업을 처리함을 OnDrop 나타낼 수 있습니다.

지정된 지점에서 삭제된 클립보드 데이터 형식 및 데이터를 검사 COleDataObject 하는 데 사용합니다pDataObject.

놓기 효과는 삭제 작업과 관련된 작업을 설명합니다. 다음 드롭 효과 목록을 참조하세요.

  • DROPEFFECT_NONE 삭제는 허용되지 않습니다.

  • DROPEFFECT_COPY 복사 작업이 수행됩니다.

  • DROPEFFECT_MOVE 이동 작업이 수행됩니다.

  • DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.

  • DROPEFFECT_SCROLL 끌기 스크롤 작업이 발생하거나 대상에서 발생 중임을 나타냅니다.

기본 메뉴 명령을 설정하는 방법에 대한 자세한 내용은 Windows SDK 및 CMenu::GetSafeHmenu 이 볼륨을 참조 SetMenuDefaultItem 하세요.

CView::OnEndPrinting

문서가 인쇄되거나 미리 보기된 후 프레임워크에서 호출됩니다.

virtual void OnEndPrinting(
    CDC* pDC,
    CPrintInfo* pInfo);

매개 변수

pDC
프린터 디바이스 컨텍스트를 가리킵니다.

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

설명

이 함수의 기본 구현은 아무 작업도 수행하지 않습니다. 멤버 함수에 할당한 GDI 리소스를 해제하려면 이 함수를 재정의 OnBeginPrinting 합니다.

CView::OnEndPrintPreview

사용자가 인쇄 미리 보기 모드를 종료할 때 프레임워크에서 호출됩니다.

virtual void OnEndPrintPreview(
    CDC* pDC,
    CPrintInfo* pInfo,
    POINT point,
    CPreviewView* pView);

매개 변수

pDC
프린터 디바이스 컨텍스트를 가리킵니다.

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

point
미리 보기 모드에서 마지막으로 표시된 페이지의 지점을 지정합니다.

pView
미리 보기에 사용되는 뷰 개체를 가리킵니다.

설명

이 함수의 기본 구현은 멤버 함수를 OnEndPrinting 호출하고 기본 프레임 창을 인쇄 미리 보기가 시작되기 전의 상태로 복원합니다. 미리 보기 모드가 종료될 때 특수 처리를 수행하도록 이 함수를 재정의합니다. 예를 들어 미리 보기 모드에서 일반 표시 모드로 전환할 때 문서에서 사용자의 위치를 유지하려면 매개 변수에서 설명하는 point 위치와 m_nCurPage 매개 변수가 pInfo 가리키는 구조체의 CPrintInfo 멤버로 스크롤할 수 있습니다.

일반적으로 함수의 끝에 있는 재정의 OnEndPrintPreview 에서 항상 기본 클래스 버전을 호출합니다.

CView::OnInitialUpdate

뷰가 문서에 처음 첨부된 후 보기가 처음 표시되기 전에 프레임워크에서 호출됩니다.

virtual void OnInitialUpdate();

설명

이 함수의 기본 구현은 힌트 정보 없이 멤버 함수를 호출 OnUpdate 합니다(즉, 매개 변수 및 NULL pHint 매개 변수에 대해 lHint 기본값 0 사용). 문서에 대한 정보가 필요한 일회성 초기화를 수행하도록 이 함수를 재정의합니다. 예를 들어 애플리케이션에 고정 크기 문서가 있는 경우 이 함수를 사용하여 문서 크기에 따라 보기의 스크롤 제한을 초기화할 수 있습니다. 애플리케이션에서 가변 크기의 문서를 지원하는 경우 문서가 변경될 때마다 스크롤 제한을 업데이트하는 데 사용합니다 OnUpdate .

CView::OnPrepareDC

화면 표시를 위해 멤버 함수가 OnDraw 호출되기 전과 인쇄 또는 인쇄 미리 보기 중에 각 페이지에 대해 멤버 함수가 호출되기 전에 OnPrint 프레임워크에서 호출됩니다.

virtual void OnPrepareDC(
    CDC* pDC,
    CPrintInfo* pInfo = NULL);

매개 변수

pDC
문서의 이미지를 렌더링하는 데 사용할 디바이스 컨텍스트를 가리킵니다.

pInfo
CPrintInfo 인쇄 또는 인쇄 미리 보기를 위해 호출되는 경우 OnPrepareDC 현재 인쇄 작업을 설명하는 구조를 가리킵니다. 멤버는 m_nCurPage 인쇄할 페이지를 지정합니다. 이 매개 변수는 NULL 화면 표시를 위해 호출되는 경우 OnPrepareDC 입니다.

설명

이 함수의 기본 구현은 화면 표시를 위해 함수를 호출하는 경우 아무 작업도 수행하지 않습니다. 그러나 이 함수는 디바이스 컨텍스트의 특성을 조정하기 위해 파생 클래스(예: CScrollView파생 클래스)에서 재정의됩니다. 따라서 재정의를 시작할 때 항상 기본 클래스 구현을 호출해야 합니다.

인쇄를 위해 함수를 호출하는 경우 기본 구현은 매개 변수에 pInfo 저장된 페이지 정보를 검사합니다. 문서의 길이를 지정 OnPrepareDC 하지 않은 경우 문서를 한 페이지 길이로 가정하고 한 페이지를 인쇄한 후 인쇄 루프를 중지합니다. 이 함수는 구조체의 멤버를 .로 설정 m_bContinuePrinting 하여 인쇄 루프를 중지합니다 FALSE.

다음 이유 중 어떤 이유로든 재정 OnPrepareDC 의합니다.

  • 지정된 페이지에 대해 필요에 따라 디바이스 컨텍스트의 특성을 조정합니다. 예를 들어 매핑 모드 또는 디바이스 컨텍스트의 다른 특성을 설정해야 하는 경우 이 함수에서 설정합니다.

  • 인쇄 시간 페이지 매김을 수행합니다. 일반적으로 멤버 함수를 사용하여 인쇄를 시작할 때 문서의 길이를 OnPreparePrinting 지정합니다. 그러나 문서가 얼마나 오래 걸리는지 미리 모르는 경우(예: 데이터베이스에서 결정되지 않은 레코드 수를 인쇄할 때) 문서를 인쇄하는 동안 문서의 끝을 테스트하도록 재정 OnPrepareDC 의합니다. 인쇄할 문서가 더 이상 없으면 구조FALSE체의 CPrintInfo 멤버를 m_bContinuePrinting 으로 설정합니다.

  • 페이지 단위로 프린터에 이스케이프 코드를 보냅니다. 이 OnPrepareDC스케이프 코드를 보내려면 매개 변수의 Escape 멤버 함수를 호출합니다 pDC .

재정의 시작 부분에 있는 OnPrepareDC 기본 클래스 버전을 호출합니다.

예시

void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
   CView::OnPrepareDC(pDC, pInfo);

   // If we are printing, set the mapmode and the window
   // extent properly, then set viewport extent. Use the
   // SetViewportOrg member function in the CDC class to
   // move the viewport origin to the center of the view.

   if (pDC->IsPrinting()) // Is the DC a printer DC.
   {
      CRect rect;
      GetClientRect(&rect);

      pDC->SetMapMode(MM_ISOTROPIC);
      CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
      ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
      CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
      ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
      CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);
   }
}

CView::OnPreparePrinting

문서를 인쇄하거나 미리 보기 전에 프레임워크에서 호출합니다.

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

매개 변수

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

Return Value

0이 아닌 경우 인쇄를 시작합니다. 인쇄 작업이 취소된 경우 0입니다.

설명

기본 구현은 아무 작업도 수행하지 않습니다.

인쇄 및 인쇄 미리 보기를 사용하도록 설정하려면 이 함수를 재정의해야 합니다. 멤버 함수를 DoPreparePrinting 호출하여 매개 변수를 pInfo 전달한 다음 반환 값을 DoPreparePrinting 반환합니다. 인쇄 대화 상자를 표시하고 프린터 디바이스 컨텍스트를 만듭니다. 기본값이 아닌 값을 사용하여 인쇄 대화 상자를 초기화하려면 값을 해당 pInfo멤버에 할당합니다. 예를 들어 문서의 길이를 알고 있는 경우 호출하기 전에 SetMaxPage 멤버 함수에 pInfo 값을 전달 DoPreparePrinting합니다. 이 값은 인쇄 대화 상자의 범위 부분에 있는 To: 상자에 표시됩니다.

DoPreparePrinting 는 미리 보기 작업에 대한 인쇄 대화 상자를 표시하지 않습니다. 인쇄 작업의 인쇄 대화 상자를 무시하려면 해당 멤버 FALSE pInfo 가 있는지 m_bPreview 확인한 다음 전달하기 전에 해당 대화 상자를 설정하여 DoPreparePrinting나중에 다시 설정합니다 TRUE FALSE.

프린터 디바이스 컨텍스트를 나타내는 개체에 CDC 액세스해야 하는 초기화를 수행해야 하는 경우(예: 문서 길이를 지정하기 전에 페이지 크기를 알아야 하는 경우) 멤버 함수를 재정 OnBeginPrinting 의합니다.

매개 변수 또는 매개 변수의 m_nNumPreviewPages m_strPageDesc pInfo 멤버 값을 설정하려면 호출 DoPreparePrinting후 설정합니다. 멤버 함수는 DoPreparePrinting 애플리케이션에 있는 값으로 설정합니다 m_nNumPreviewPages . INI 파일 및 기본값으로 설정합니다 m_strPageDesc .

예시

프레임워크에서 인쇄 대화 상자를 표시하고 프린터 DC를 만들 수 있도록 재정의에서 재정 OnPreparePrinting 의 및 호출 DoPreparePrinting 합니다.

BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   return CEditView::DoPreparePrinting(pInfo);
}

문서에 포함된 페이지 수를 알고 있는 경우 호출DoPreparePrinting하기 전에 최대 페이지를 OnPreparePrinting 설정합니다. 프레임워크는 인쇄 대화 상자의 "대상" 상자에 최대 페이지 번호를 표시합니다.

BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
   //The document has 2 pages.
   pInfo->SetMaxPage(2);
   return CView::DoPreparePrinting(pInfo);
}

CView::OnPrint

문서의 페이지를 인쇄하거나 미리 보기 위해 프레임워크에서 호출됩니다.

virtual void OnPrint(
    CDC* pDC,
    CPrintInfo* pInfo);

매개 변수

pDC
프린터 디바이스 컨텍스트를 가리킵니다.

pInfo
CPrintInfo 현재 인쇄 작업을 설명하는 구조를 가리킵니다.

설명

인쇄되는 각 페이지에 대해 프레임워크는 멤버 함수를 호출한 직후 이 함수를 호출합니다 OnPrepareDC . 인쇄되는 페이지는 가리키는 구조 pInfo 체의 멤버에 CPrintInfo 의해 m_nCurPage 지정됩니다. 기본 구현은 멤버 함수를 OnDraw 호출하고 프린터 디바이스 컨텍스트를 전달합니다.

다음 이유 중 어떤 이유로든 이 함수를 재정의합니다.

  • 다중 페이지 문서 인쇄를 허용합니다. 현재 인쇄 중인 페이지에 해당하는 문서 부분만 렌더링합니다. 렌더링을 수행하는 데 사용하는 OnDraw 경우 문서의 적절한 부분만 인쇄되도록 뷰포트 원본을 조정할 수 있습니다.

  • 인쇄된 이미지를 화면 이미지와 다르게 표시하려면(즉, 애플리케이션이 WYSIWYG가 아닌 경우) 프린터 디바이스 컨텍스트를 OnDraw전달하는 대신 디바이스 컨텍스트를 사용하여 화면에 표시되지 않는 특성을 사용하여 이미지를 렌더링합니다.

    화면 표시에 사용하지 않는 인쇄에 GDI 리소스가 필요한 경우 나중에 그리기 전에 디바이스 컨텍스트로 선택하고 선택을 취소합니다. 이러한 GDI 리소스는 에 할당 OnBeginPrinting 되어 릴리스 OnEndPrinting되어야 합니다.

  • 머리글 또는 바닥글을 구현하려면 인쇄할 수 있는 영역을 제한하여 렌더링을 수행하는 데 계속 사용할 OnDraw 수 있습니다.

매개 변수의 pInfo 멤버는 m_rectDraw 페이지의 인쇄 가능한 영역을 논리적 단위로 설명합니다.

재정의OnPrint에서 호출 OnPrepareDC 하지 마세요. 호출하기 전에 프레임워크가 자동으로 호출 OnPrepareDC OnPrint됩니다.

예시

다음은 재정의된 OnPrint 함수에 대한 기본 구조입니다.

void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
   UNREFERENCED_PARAMETER(pInfo);

   // Print headers and/or footers, if desired.
   // Find portion of document corresponding to pInfo->m_nCurPage.
   OnDraw(pDC);
}

다른 예제를 보려면 CRichEditView::PrintInsideRect를 참조하십시오.

CView::OnScroll

프레임워크에서 호출하여 스크롤이 가능한지 여부를 확인합니다.

virtual BOOL OnScroll(
    UINT nScrollCode,
    UINT nPos,
    BOOL bDoScroll = TRUE);

매개 변수

nScrollCode
사용자의 스크롤 요청을 나타내는 스크롤 막대 코드입니다. 이 매개 변수는 가로로 발생하는 스크롤 유형을 결정하는 하위 바이트와 세로로 발생하는 스크롤 유형을 결정하는 상위 바이트라는 두 부분으로 구성됩니다.

  • SB_BOTTOM 아래로 스크롤합니다.

  • SB_LINEDOWN 한 줄 아래로 스크롤합니다.

  • SB_LINEUP 한 줄을 위로 스크롤합니다.

  • SB_PAGEDOWN 한 페이지를 아래로 스크롤합니다.

  • SB_PAGEUP 한 페이지를 위로 스크롤합니다.

  • SB_THUMBTRACK 스크롤 상자를 지정된 위치로 끕니다. 현재 위치는 에 nPos지정됩니다.

  • SB_TOP 위로 스크롤합니다.

nPos
스크롤 막대 코드 SB_THUMBTRACK가 있으면 현재 스크롤 상자 위치를 포함하며, 그렇지 않으면 사용되지 않습니다. 초기 스크롤 범위에 nPos 따라 음수일 수 있으며 필요한 경우 캐스팅 int 해야 합니다.

bDoScroll
지정된 스크롤 작업을 실제로 수행해야 하는지 여부를 결정합니다. 이면 TRUE스크롤이 수행되어야 합니다. 이 경우 FALSE스크롤이 수행되지 않아야 합니다.

Return Value

보기 TRUE 가 실제로 스크롤된 경우 bDoScroll 0이 아닌 값을 반환하고, 그렇지 않으면 0을 반환합니다. 이 FALSE경우 bDoScroll 실제로 스크롤을 수행하지 않더라도 반환했을 값을 반환 bDoScroll TRUE합니다.

설명

한 경우 이 함수는 보기가 스크롤 막대 메시지를 받을 때로 TRUE 설정된 프레임워크 bDoScroll 에서 호출됩니다. 이 경우 실제로 보기를 스크롤해야 합니다. 다른 경우 이 함수는 스크롤이 실제로 발생하기 전에 OLE 항목이 처음에 놓기 대상의 자동 스크롤 영역으로 끌 때로 설정된 FALSE 상태로 호출 bDoScroll 됩니다. 이 경우 실제로 보기를 스크롤하면 안 됩니다.

CView::OnScrollBy

사용자가 보기의 현재 테두리에 대해 OLE 항목을 끌거나 세로 또는 가로 스크롤 막대를 조작하여 문서의 현재 보기 너머의 영역을 볼 때 프레임워크에서 호출됩니다.

virtual BOOL OnScrollBy(
    CSize sizeScroll,
    BOOL bDoScroll = TRUE);

매개 변수

sizeScroll
가로 및 세로로 스크롤된 픽셀 수입니다.

bDoScroll
뷰 스크롤이 발생하는지 여부를 결정합니다. 이면 TRUE스크롤이 수행됩니다. 이 경우 FALSE스크롤이 발생하지 않습니다.

Return Value

뷰를 스크롤할 수 있으면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

파생 클래스에서 이 메서드는 사용자가 요청한 방향으로 뷰를 스크롤할 수 있는지 확인한 다음 필요한 경우 새 지역을 업데이트합니다. 이 함수는 실제 스크롤 요청에 의해 CWnd::OnHScroll 자동으로 호출되고 CWnd::OnVScroll 수행됩니다.

이 메서드의 기본 구현은 뷰를 변경하지 않지만 호출되지 않으면 뷰가 -derived 클래스에서 CScrollView스크롤되지 않습니다.

문서 너비 또는 높이가 32767픽셀을 초과하면 잘못된 sizeScroll 인수로 호출되므로 32767을 지나서 스크롤하지 못합니다OnScrollBy.

CView::OnUpdate

보기의 문서가 수정된 후 프레임워크에서 호출됩니다. 이 함수는 CDocument::UpdateAllViews 호출되며 뷰에서 해당 수정 내용을 반영하도록 디스플레이를 업데이트할 수 있습니다.

virtual void OnUpdate(
    CView* pSender,
    LPARAM lHint,
    CObject* pHint);

매개 변수

pSender
문서를 수정한 뷰를 가리키거나 NULL 모든 보기를 업데이트할 것인지를 가리킵니다.

lHint
수정 내용에 대한 정보를 포함합니다.

pHint
수정 내용에 대한 정보를 저장하는 개체를 가리킵니다.

설명

의 기본 구현으로도 호출됩니다 OnInitialUpdate. 기본 구현은 전체 클라이언트 영역을 무효화하여 다음 WM_PAINT 메시지를 받을 때 그리기 위해 표시합니다. 문서의 수정된 부분에 매핑되는 영역만 업데이트하려면 이 함수를 재정의합니다. 이렇게 하려면 힌트 매개 변수를 사용하여 수정 내용에 대한 정보를 전달해야 합니다.

사용 lHint하려면 특수 힌트 값(일반적으로 비트 마스크 또는 열거형 형식)을 정의하고 문서에서 이러한 값 중 하나를 전달하도록 합니다. 사용 pHint하려면 힌트 클래스를 CObject 파생시키고 문서에서 힌트 개체에 대한 포인터를 전달하도록 합니다. 재정의할 때 멤버 함수를 OnUpdate사용하여 CObject::IsKindOf 힌트 개체의 런타임 형식을 확인합니다.

일반적으로 에서 직접 OnUpdate그리기를 수행해서는 안 됩니다. 대신 디바이스 좌표에서 업데이트가 필요한 영역을 설명하는 사각형을 결정합니다. 이 사각형을 .에 전달합니다 CWnd::InvalidateRect. 이렇게 하면 다음에 메시지를 받을 때 그리기가 WM_PAINT 발생합니다.

0이고 pHint 있는 NULL경우 lHint 문서에서 일반 업데이트 알림을 보냈습니다. 보기가 일반 업데이트 알림을 받거나 힌트를 디코딩할 수 없는 경우 전체 클라이언트 영역을 무효화해야 합니다.

참고 항목

MFC 샘플 MDIDOCVW
CWnd 수업
계층 구조 차트
CWnd 수업
CFrameWnd 수업
CSplitterWnd 수업
CDC 수업
CDocTemplate 수업
CDocument 수업