티스토리 뷰
Printing Class Library
Dec 19 2003 13:02 Written by Richard Stringer (codeguru member)
Printing Class Library
자 이번에 살펴볼 클레스는 프린트 관련 클레스입니다.
제가 급하게 프린트관련 작업을 할일이 있어 찾던중
아주 유용하면서도 잘 정리된 프린트 클레스를 찾게되었습니다.
사실 프린트쪽은 생각보다 훨씬 복잡하다는게 저의 개인적인 생각입니다.
저만 그러한지는 몰라도 암튼 저는 그렇게 생각합니다.
본 클레스는 Codeguru 에서 가져왔으며 기사제공자는 Richard Stringer 님입니다.
자 그럼 클레스를 사용해 볼까요.
먼저 위에서 소스라이브러리를 다운받아 압축을 푸세요.
필요한 파일들은 다음과 같습니다.
CPage.cpp
CPage.h
CPrinter.cpp
CPrinter.h
Dib.cpp
Dib.h
자 이제 이 파일들을 프로젝트 폴더로 복사합니다.
다음 헤더파일에 다음을 선언해줍니다.
#include "CPage.h"
자 다음 실질적인 작업을 시작해봅시다.
이 클레스는 프린트 클레스입니다.
따라서 프린트명령이 주어지는 시점을 알아야겠지요.
클레스위자드에서 생성하면 되겠지요 .... ㅎㅎ
그리고 생성된 함수에 다음을 추가합니다.
void C*****View::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CPage* ps = new CPage(pInfo->m_rectDraw,pDC,MM_TEXT);
OnReport_Function( ps );
delete ps;
CView::OnPrint(pDC, pInfo);
}
위에서 OnReport_Function() 은 사용자가 정의한 프린트함수입니다.
다음은 OnReport_Function()의 한예입니다.
Bitmap 이미지와 텍스트를 프린트하도록 되어있군요.
void OnReport_Function(CPage* pPage)
{
double Row;
//Print a bitmap
ps->PrintBitMap(1.0,1.0,4.0,5.0,"MyBitmap.bmp");
//Print a title
Row = pPage-Print(0.0,0.0,TEXT_NORMAL|TEXT_CENTER,24,"Form Title");
//create and use a print region
CPrintRegion *Region1=pPage->CreateRegion(.5,0.0,1.5,3.9);
Region1->DrawBorder();
Region1->DrawTitle("Customer Information",8,TEXT_BOLD|TEXT_CENTER|TEXT_RECT,FILL_NONE);
Row = pPage->Print(Region2,0.0,0.01,TEXT_NORMAL|TEXT_SINGLELINE,9,"Name");
Row = pPage->Print(Region2,Row,0.01,TEXT_NORMAL|TEXT_SINGLELINE,9,"Location");
}
//create and use a table
TABLEHEADER* pTable = new TABLEHEADER;
pTable->PointSize = 10;
pTable->LineSize = 1;
//default shown only for demo purposes
pTable->UseInches = TRUE;
pTable->AutoSize = FALSE;
pTable->Border = TRUE;
pTable->FillFlag = FILL_NONE;
pTable->NumColumns = 5;
pTable->NumRows = 12;
pTable->StartRow = 0.0;
pTable->StartCol = 0.0;
pTable->EndCol = 8.0;
pTable->ColDesc[0].Init(1.0,"Item #",FILL_NONE);
pTable->ColDesc[1].Init(3.0,"Desc.",FILL_LTGRAY);
pTable->ColDesc[2].Init(1.0,"#Items");
pTable->ColDesc[3].Init(1.0,"Cost");
pTable->ColDesc[4].Init(1.0,"Ext Cost");
pPage->Table(pTable);
//place information in a table
pPage->Print(pTable,0,0,12,TEXT_LEFT|TEXT_BOLD,"123-009");
pPage->Print(pTable,0,1,12,TEXT_CENTER|TEXT_BOLD,"SmallCray Computer");
pPage->Print(pTable,0,2,12,TEXT_CENTER|TEXT_BOLD,"2");
pPage->Print(pTable,0,3,12,TEXT_RIGHT|TEXT_BOLD,"22.10");
pPage->Print(pTable,0,4,12,TEXT_RIGHT|TEXT_BOLD,"44.20");
}
이 클레스는 이보다 더많은 휼륭한 함수들이 많이 들어있습니다.
더 많은 유용한 함수들의 사용에 대해서는 데모 프로젝트를 다운받아
한번씩 주욱 살펴보도록 하세요.
다듬으면 다듬을수록 본 클레스의 우수한 기능에 놀랍습니다.
저는 이 클레스가 아주 유용하다는 생각에 단지 이곳에서 소개할 뿐입니다.
그럼 필요하신 분들에게 유용한 자료가 되길 빕니다.
Dec 19 2003 13:02 Written by Richard Stringer (codeguru member)
Printing Class Library
자 이번에 살펴볼 클레스는 프린트 관련 클레스입니다.
제가 급하게 프린트관련 작업을 할일이 있어 찾던중
아주 유용하면서도 잘 정리된 프린트 클레스를 찾게되었습니다.
사실 프린트쪽은 생각보다 훨씬 복잡하다는게 저의 개인적인 생각입니다.
저만 그러한지는 몰라도 암튼 저는 그렇게 생각합니다.
본 클레스는 Codeguru 에서 가져왔으며 기사제공자는 Richard Stringer 님입니다.
자 그럼 클레스를 사용해 볼까요.
먼저 위에서 소스라이브러리를 다운받아 압축을 푸세요.
필요한 파일들은 다음과 같습니다.
CPage.cpp
CPage.h
CPrinter.cpp
CPrinter.h
Dib.cpp
Dib.h
자 이제 이 파일들을 프로젝트 폴더로 복사합니다.
다음 헤더파일에 다음을 선언해줍니다.
#include "CPage.h"
자 다음 실질적인 작업을 시작해봅시다.
이 클레스는 프린트 클레스입니다.
따라서 프린트명령이 주어지는 시점을 알아야겠지요.
클레스위자드에서 생성하면 되겠지요 .... ㅎㅎ
그리고 생성된 함수에 다음을 추가합니다.
void C*****View::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CPage* ps = new CPage(pInfo->m_rectDraw,pDC,MM_TEXT);
OnReport_Function( ps );
delete ps;
CView::OnPrint(pDC, pInfo);
}
위에서 OnReport_Function() 은 사용자가 정의한 프린트함수입니다.
다음은 OnReport_Function()의 한예입니다.
Bitmap 이미지와 텍스트를 프린트하도록 되어있군요.
void OnReport_Function(CPage* pPage)
{
double Row;
//Print a bitmap
ps->PrintBitMap(1.0,1.0,4.0,5.0,"MyBitmap.bmp");
//Print a title
Row = pPage-Print(0.0,0.0,TEXT_NORMAL|TEXT_CENTER,24,"Form Title");
//create and use a print region
CPrintRegion *Region1=pPage->CreateRegion(.5,0.0,1.5,3.9);
Region1->DrawBorder();
Region1->DrawTitle("Customer Information",8,TEXT_BOLD|TEXT_CENTER|TEXT_RECT,FILL_NONE);
Row = pPage->Print(Region2,0.0,0.01,TEXT_NORMAL|TEXT_SINGLELINE,9,"Name");
Row = pPage->Print(Region2,Row,0.01,TEXT_NORMAL|TEXT_SINGLELINE,9,"Location");
}
//create and use a table
TABLEHEADER* pTable = new TABLEHEADER;
pTable->PointSize = 10;
pTable->LineSize = 1;
//default shown only for demo purposes
pTable->UseInches = TRUE;
pTable->AutoSize = FALSE;
pTable->Border = TRUE;
pTable->FillFlag = FILL_NONE;
pTable->NumColumns = 5;
pTable->NumRows = 12;
pTable->StartRow = 0.0;
pTable->StartCol = 0.0;
pTable->EndCol = 8.0;
pTable->ColDesc[0].Init(1.0,"Item #",FILL_NONE);
pTable->ColDesc[1].Init(3.0,"Desc.",FILL_LTGRAY);
pTable->ColDesc[2].Init(1.0,"#Items");
pTable->ColDesc[3].Init(1.0,"Cost");
pTable->ColDesc[4].Init(1.0,"Ext Cost");
pPage->Table(pTable);
//place information in a table
pPage->Print(pTable,0,0,12,TEXT_LEFT|TEXT_BOLD,"123-009");
pPage->Print(pTable,0,1,12,TEXT_CENTER|TEXT_BOLD,"SmallCray Computer");
pPage->Print(pTable,0,2,12,TEXT_CENTER|TEXT_BOLD,"2");
pPage->Print(pTable,0,3,12,TEXT_RIGHT|TEXT_BOLD,"22.10");
pPage->Print(pTable,0,4,12,TEXT_RIGHT|TEXT_BOLD,"44.20");
}
이 클레스는 이보다 더많은 휼륭한 함수들이 많이 들어있습니다.
더 많은 유용한 함수들의 사용에 대해서는 데모 프로젝트를 다운받아
한번씩 주욱 살펴보도록 하세요.
다듬으면 다듬을수록 본 클레스의 우수한 기능에 놀랍습니다.
저는 이 클레스가 아주 유용하다는 생각에 단지 이곳에서 소개할 뿐입니다.
그럼 필요하신 분들에게 유용한 자료가 되길 빕니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 박영창
- SQL 튜닝
- 모임
- 실전! 업무에 바로 쓰는 SQL 튜닝
- Japanimation
- 책
- 네트워크
- 회식
- 삼성 소프트웨어 멤버십
- 시간표
- wow
- 오픈 소스 SW와 전략적 활용
- 후기
- 과제물
- 레포트
- World Of Warcraft
- hp-ux
- oracle
- 실습으로 배우는 Unix System Admin (HPUX)
- 와우
- 오라클
- SSM
- 프로그래밍
- HPUX
- 캐논
- 리눅스
- 영화
- 애니메이션
- 일기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함