다음을 통해 공유


인쇄 미리 보기 아키텍처

이 문서에서는 MFC 프레임 워크는 인쇄 미리 보기 기능을 구현 하는 방법을 설명 합니다.다음 내용에 대해 다룹니다.

  • 인쇄 미리 보기 프로세스

  • 인쇄 미리 보기를 수정합니다.

장치에서 이미지 그리기 직접 대신 응용 프로그램 화면을 사용 하 여 프린터를 시뮬레이션 해야 하기 때문에 인쇄 미리 보기 화면 표시 및 인쇄와는 다릅니다.이 위해 Mfc 라이브러리에서 파생 된 특수 (문서화 되지 않은) 클래스를 정의 CDC 클래스, 호출 CPreviewDC.모든 CDC 두 개의 장치 컨텍스트에서 개체를 포함할 수 있지만 일반적으로 동일 합니다.에 CPreviewDC 개체에 있는 서로: 첫 번째 실험 중인 프린터를 나타내고 화면에 출력 됩니다 실제로 표시 되는 초를 나타냅니다.

인쇄 미리 보기 프로세스

[인쇄 미리 보기] 명령을 선택할 때 사용자는 파일 메뉴에서 프레임 워크를 만듭니다는 CPreviewDC 개체입니다.응용 프로그램이 프린터 디바이스 컨텍스트의 특성을 설정 하는 작업을 수행할 때마다 프레임 워크는 또한에서 화면 디바이스 컨텍스트에서 비슷한 작업을 수행 합니다.예를 들어, 응용 프로그램 글꼴 인쇄를 선택 하면 프레임 워크 프린터 글꼴 시뮬레이션 화면 표시 용 글꼴을 선택 합니다.응용 프로그램이 출력을 프린터로 보낼 때마다 프레임 워크 대신 화면에 출력을 보냅니다.

또한 인쇄 미리 보기 인쇄 시 각 페이지의 문서를 출력 하는 순서도 다릅니다.인쇄 하는 동안 프레임 워크는 특정 범위의 페이지가 렌더링 될 때까지 인쇄 루프를 계속 합니다.인쇄 미리 보기를 언제 든 지 하나 또는 두 페이지 표시 및 다음 응용 프로그램이 대기. 사용자가 응답할 때까지 추가 페이지가 표시 됩니다.인쇄 미리 보기 중에 응용 프로그램에도 응답 해야 WM_PAINT 메시지 동안 일반 화면 처럼.

CView::OnPreparePrinting 함수 호출 미리 보기 모드에서 호출 되 면 바로 인쇄 작업 시작 부분에 그대로 있습니다.CPrintInfo 구조체 함수에 전달 된 구조 포함 여러 멤버 값을 인쇄 미리 보기 작업의 특징을 조정 하려면 설정할 수 있습니다.설정할 수 있습니다 예를 들어 있는 m_nNumPreviewPages 멤버 문서의 한 페이지 또는 두 페이지 모드에서 미리 볼 것인지 여부를 지정 합니다.

인쇄 미리 보기를 수정합니다.

동작 및 모양을 인쇄 미리 보기의 다양 한 방법으로 아주 쉽게 수정할 수 있습니다.예를 들어, 무엇 보다 있습니다.

  • 문서의 모든 페이지에 쉽게 액세스에 대 한 스크롤 막대를 표시 하려면 미리 보기 창을 발생 합니다.

  • 인쇄 미리 보기는 현재 페이지에 표시를 시작 하 여 문서에서 사용자의 위치를 유지 하려면 발생 합니다.

  • 인쇄 미리 보기와 인쇄에 대해 수행 해야 하는 다른 초기화가 될 수 있습니다.

  • 사용자 고유의 형식으로 페이지 번호를 표시 하려면 인쇄 미리 보기를 발생할.

길게 표시 되는 문서를 알고 있으며 호출할 경우 SetMaxPage 적절 한 값으로 프레임 워크가이 정보 인쇄 중 뿐만 아니라 미리 보기 모드에서 사용할 수 있습니다.프레임 워크가 문서의 길이 알게 되 면 미리 보기 창 스크롤 막대, 사용자가 미리 보기 모드에서 문서를 통해 앞뒤로 페이지 수를 제공할 수 있습니다.프레임 워크가 문서의 길이 설정 하지 않은 경우 프레임 워크에서 스크롤 막대를 추가 하지 않습니다 현재 위치를 나타내기 위해 스크롤 상자를 배치할 수 없습니다.이 경우 사용자는 다음 페이지 및 이전 페이지 단추 페이지 문서 미리 보기 창의 컨트롤 막대에 사용 해야 합니다.

인쇄 미리 보기에 대 한 사용자 값을 할당 하려면 유용할 수 있습니다는 m_nCurPage 의 구성원 CPrintInfo, 절대로 일반 인쇄에 이렇게 것도.보통 인쇄 중에이 구성원 뷰 클래스 프레임 워크에서 정보를 전달합니다.이 프레임 워크 인쇄 될 페이지 보기 방법을 배우십시오입니다.

반면 때 인쇄 미리 보기 모드 시작을 m_nCurPage 멤버는 반대 방향으로 정보를 전달: 뷰에서 프레임 워크.프레임 워크 페이지 미리 볼 먼저 확인 하이 멤버의 값을 사용 합니다.이 멤버의 기본값은 1 이므로 문서의 첫 번째 페이지를 처음에 표시 됩니다.재정의 하 여 OnPreparePrinting 인쇄 미리 보기 명령이 호출 될 때 표시 되는 페이지 수가이 멤버를 설정 합니다.이런 방식이으로 응용 프로그램이 표준 디스플레이 모드에서 인쇄 미리 보기 모드로 이동할 때 사용자의 현재 위치를 유지 합니다.

경우가 있습니다 OnPreparePrinting 인쇄 미리 보기 또는 인쇄 작업에 대해 호출 될 여부에 따라 다른 초기화를 수행 합니다.검토 하 여 확인할 수 있습니다 해당 m_bPreview 멤버 변수에 CPrintInfo 구조.이 멤버를 설정 TRUE 인쇄 미리 보기를 호출 합니다.

CPrintInfo 구조 라는 멤버는 m_strPageDesc, 한 페이지 및 여러 페이지 모드에서 화면 맨 아래에 표시 되는 문자열에 서식을 지정 하려면 사용 됩니다.기본적으로 이러한 문자열은 형태의 수 있습니다 "페이지 n" 및 "페이지 n - m, "하지만 수정할 수 있습니다 m_strPageDesc 내에서 OnPreparePrinting 및 문자열 것 보다 세밀 하 게 설정 합니다.참조 CPrintInfo 구조체 에 있는 MFC 참조 에 대 한 자세한 내용은.

참고 항목

참조

인쇄 및 인쇄 미리 보기

인쇄

CView 클래스

CDC 클래스