본문 바로가기
C & C++/C & C++

[Tip] 기본 프린트 셋팅 가져오기

by izen8 2011. 4. 18.
반응형

PRINTDLG PrtDlg;

if (!AfxGetApp()->GetPrinterDeviceDefaults(&PrtDlg))     // 기본 프린터
셋팅을 얻는다
{
  AfxMessageBox("기본 프린터가 설정되어 있지 않습니다...");
  return FALSE;
}

인쇄 다이얼로그를 띄우지 않고 그 값을 셋팅합니다.
CPrintDialog dlg(FALSE);

dlg.m_pd.hDevMode = PrtDlg.hDevMode; //현재 설정을 얻는다

LPDEVMODE pDevMode = (LPDEVMODE) ::GlobalLock(dlg.m_pd.hDevMode);
if (NULL == pDevMode)
{
 ::GlobalUnlock(dlg.m_pd.hDevMode);
 AfxMessageBox("Get Printer Device Setting Lock Error!!!\n");
 return FALSE;
}

//용지
pDevMode->dmPaperSize = DMPAPER_A4;

// 컬러/흑백
if(nColor == 0)
  pDevMode->dmColor  = DMCOLOR_MONOCHROME;
else
  pDevMode->dmColor  = DMCOLOR_COLOR;

// 인쇄매수
pDevMode->dmCopies = (short)nCopies;   

// 방향
if(nOrient == 0)
 pDevMode->dmOrientation = DMORIENT_PORTRAIT;     // 가로인쇄
else
 pDevMode->dmOrientation = DMORIENT_LANDSCAPE; // 세로인쇄

// 인쇄할 DC에 셋팅합니다.
if(pDC->GetSafeHdc())
 pDC->DeleteDC();

//프린터 이름/포트/디바이스명을 이용해 프린터 DC를 생성
pDC->CreateDC(szPrintDevice, szPrintName, szPrintPort, pDevMode);

::GlobalUnlock(dlg.m_pd.hDevMode);

반응형

'C & C++ > C & C++' 카테고리의 다른 글

UNICODE 에 대하여  (0) 2011.04.23
문자열 복사  (0) 2011.04.18
[Tip] 프린터 등록정보 안띄우고 인쇄 하는 방법  (0) 2011.04.18
[Tip] 모니터 끄기  (0) 2011.04.18
[MFC] Window Message  (0) 2011.04.15

댓글