프린트 다이얼로그를 안 띄우고 인쇄하기 > MFC Tip

본문 바로가기
사이트 내 전체검색

MFC Tip

프린트 다이얼로그를 안 띄우고 인쇄하기

페이지 정보

profile_image
작성자 이즈
댓글 0건 조회 2,664회 작성일 06-12-28 04:36

본문

프린트 다이얼로그를 안 띄우고 기본 프린터로 인쇄하고 싶습니다. 방법을 알려주세요.

기본적으로 인쇄는 인쇄 다이얼로그를 띄우는 절차를 필요로 합니다. MFC의 인쇄 다이얼로그 클래스는 CPrintDialog인데 이 클래스를 생성할 때 인자를 잘 주면 다이얼로그가 뜨지 않고 기본 프린터에 대한 정보만 얻어오게 됩니다. 다음 코드는 인쇄 다이얼로그를 띄우지 않고 프린터에 출력하는 예제입니다.

// CPrintDialog를 이용해 프린터의 디폴트 설정을 읽어온다.
CPrintDialog dlg(TRUE, PD_RETURNDEFAULT);
// DoModal을 실행하면 원래는 다이얼로그가 떠야되지만 인자로 PD_RETURNDEFAULT를
// 주었기 때문에 정보만 얻어오고 바로 리턴한다.
dlg.DoModal();

// 종이를 가로 방향으로 찍고 싶다든지 여러 매를 찍고 싶다면 아래의 코드를 수정하여
// 사용한다. DEVMODE 구조체를 공부해보기 바란다. 다음 예는 가로 방향으로 설정하는 예이다.
DEVMODE *pDevMode = (DEVMODE *)::GlobalLock(dlg.m_pd.hDevMode);
if (pDevMode)
{
        // 프린터의 인쇄 방향 설정을 변경한다.
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
// 3매를 찍도록 한다.
pDevMode->dmCopies = 3;
::GlobalUnlock(dlg.m_pd.hDevMode);
}

CDC dc;
// 프린터 설정을 dc 변수에 반영한다.
if (dc.Attach(dlg.CreatePrinterDC()))
{
DOCINFO di;

// 새로 생성되는 프린트 잡의 이름을 준다.
memset(&di, 0x00, sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "InstPhoto Output";

// 프린트 잡을 하나 연다.
dc.StartDoc(&di);
dc.StartPage();
// dc에 원하는 출력을 수행한다.
....

// 출력이 종료되었으면 마무리 작업을 한다.
dc.EndPage();
dc.EndDoc();
dc.DeleteDC();
}

댓글목록

등록된 댓글이 없습니다.

Total 172건 1 페이지

검색

회원로그인

회원가입

사이트 정보

컴퓨터 정보,윈도우즈,리눅스,포토샵,3ds
맥스,프로그래밍 강좌팁

접속자집계

오늘
282
어제
558
최대
5,287
전체
630,387
Copyright © www.qdata.co.kr All rights reserved.