다이얼로그에 프린트 기능을 넣으려면

다이얼로그에 프린트 기능을 넣으려면
MFC는 기본적으로 OnDraw()를 작성하면 도큐먼트를 프린트할 수 있습니다. 그리고 도큐먼트/뷰
구조에서는 프린트 미리 보기 기능을 포함해 몇 가지 유용한 프린트 관련 기능도 제공합니다. 그러나
기존의 프린트 기능을 이용하지 않고 다이얼로그에서 프린트하고자 할 경우에는 먼저 프린트에 사용할
폰트를 생성하고(만일 그림을 프린트하고자 한다면 필요없다) 프린터의 DC 핸들을 얻기 위해
CPrintDialog 객체를 생성합니다. 그런 다음 프린트 다이얼로그를 띄우거나 GetDefaults()를 호출해
프린터 DC의 핸들을 얻습니다. 이렇게 얻은 핸들을 이용해 CDC 객체를 생성하고 CDC의 멤버 함수인
StartDoc(), StartPage()를 호출한 다음 마지막으로 TextOut()이나 BitBlt() 등의 함수를 사용해
프린트합니다. 다음의 예제 코드를 참고하세요.

// …
CFont font;
font.CreateFont(-200,0,0,0,100,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
NULL,”굴림”);
CPrintDialog dlg(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL);
dlg.DoModal();
//dlg.GetDefaults( );
if(!dlg.m_pd.hDC){
MessageBox(“유효하지 않은 프린터 핸들입니다!”);
font.DeleteObject();
return;
}
CDC * pDC = new CDC;
pDC->Attach(dlg.m_pd.hDC);
pDC->StartDoc(“MyDocument”);
pDC->StartPage();
CFont * pFont;
pFont = pDC->SelectObject(&font);
pDC->TextOut(10,10,”마소 독자 여러분 안녕하세요?”);
pDC->SelectObject(pFont);
pDC->EndPage();
pDC->EndDoc();
pDC->DeleteDC();
pDC->Detach();
delete pDC;
font.DeleteObject();
// …
]

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply