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 |
댓글