📄 printformatfacedlg.cpp
字号:
// printformatfaceDlg.cpp : implementation file
//
#include "stdafx.h"
#include "fee.h"
#include "printformatfaceDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// printformatfaceDlg dialog
printformatfaceDlg::printformatfaceDlg(CWnd* pParent /*=NULL*/)
: CDialog(printformatfaceDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(printformatfaceDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void printformatfaceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(printformatfaceDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(printformatfaceDlg, CDialog)
//{{AFX_MSG_MAP(printformatfaceDlg)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// printformatfaceDlg message handlers
BOOL printformatfaceDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// IDM_ABOUTBOX must be in the system command range.
/*
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
*/
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
/*
// TODO: Add extra initialization here
InvoiceData.sn=0;
InvoiceData.m_SumMoney =0;
strcpy(InvoiceData.m_CustomerName ,"清华大学");
strcpy(InvoiceData.m_BossName ,"机械工业出版社");
*/
CRect rect;
GetClientRect(&rect);//获得客户区大小
// ScreenToClient(&rect);//将屏幕坐标转化为客户坐标
m_bitmapRect.left =rect.left ;
m_bitmapRect.right =rect.right ;
m_bitmapRect.top =rect.top ;
m_bitmapRect.bottom =rect.bottom ;
GetInfo();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void printformatfaceDlg::GetInfo()
{
//发票尺寸190*104
Orient.Size .x =190;
Orient.Size .y =104;
//发票标题
Orient.Caption .x =35;
Orient.Caption .y =10;
//横线
Orient.Line .x =25;
Orient.Line .y =16;
//发票联
Orient.InvoicePage.x =58;
Orient.InvoicePage .y =21;
//客户名称标题
Orient.CustomerCaption .x =21;
Orient.CustomerCaption .y =33;
//客户名称
Orient.CustomerName .x =38;
Orient.CustomerName .y =32;
//发票表格
Orient.form .left =21;
Orient.form .top =38;
Orient.form .right =174;
Orient.form .bottom =90;
//开票单位
Orient.Company.x =25;
Orient.Company.y =92;
//开票人
Orient.Invoiceman.x =89;
Orient.Invoiceman.y =92;
}
BOOL printformatfaceDlg::Draw(CDC *pDC,CRect *bitmapRect)
{
CFont font50,font120,font140,font90, *pOldFont;
CPen pen1,pen2,*pOldPen;
CRect rect;
int i,j;
int DxWidths[22]={0,30,0,30,0,30,0,30,0
,30,0,30,0,30,0,30,0,30,0,30,0,30};
int DxWidths140[6]={0,70,0,70,0,70};
char Buffer[20],TempBuffer[40];
if(!pDC->IsPrinting ())
{
pDC->SetWindowOrg(0,0);
pDC->SetViewportOrg(bitmapRect->left ,bitmapRect->top);
//设置位图背景模式为不透明
pDC->SetBkMode(OPAQUE);
//设置位图背景颜色为白色
pDC->SetBkColor(RGB(255,255,255));
//填充位图
pDC->FillSolidRect(0,0,bitmapRect->Width(),
bitmapRect->Height(),RGB(255,255,255));
}
//设置文字显示颜色
pDC->SetTextColor(RGB(0,0,0));
//创建点阵字体
font50.CreatePointFont(75,_T("Times New Roman"),pDC);
font90.CreatePointFont(90,_T("Times New Roman"),pDC);
font120.CreatePointFont(120,_T("Times New Roman"),pDC);
font140.CreatePointFont(150,_T("Times New Roman"),pDC);
//将字体选入
pOldFont=pDC->SelectObject(&font120);
//创建画笔
pen2.CreatePen (PS_SOLID,2,RGB(0,0,0));
//将画笔选入
pOldPen=pDC->SelectObject (&pen2);
if(!pDC->IsPrinting ())
{
rect.left =int(((Orient.Line .x-6))*rato);
rect.top =int(((Orient.Line .y+2))*rato);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText ("/ To",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
//画横线
pDC->MoveTo (int(Orient.Line .x*rato) ,int(Orient.Line .y*rato));
pDC->LineTo (int((Orient.Line .x+60)*rato) ,int(Orient.Line .y*rato));
pDC->MoveTo (int(Orient.Line .x*rato) ,int(Orient.Line .y*rato));
pDC->LineTo (int((Orient.Line .x)*rato) ,int((Orient.Line .y+23)*rato));
pDC->MoveTo (int(Orient.Line .x*rato) ,int((Orient.Line .y+23)*rato));
pDC->LineTo (int((Orient.Line .x+60)*rato) ,int((Orient.Line .y+23)*rato));
pDC->MoveTo (int((Orient.Line .x+60)*rato) ,int((Orient.Line .y)*rato));
pDC->LineTo (int((Orient.Line .x+60)*rato) ,int((Orient.Line .y+23)*rato));
rect.left= int((Orient.Line .x+2)*rato);
rect.right =int((Orient.Line .x+60)*rato);
rect.top = int((Orient.Line .y+2)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText ("DAW KHIN HMIN LWIN",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+2)*rato);
rect.right =int((Orient.Line .x+60)*rato);
rect.top = int((Orient.Line .y+6)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText ("38/39 WAYZAYANTAR GARDEN ,WAT",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+2)*rato);
rect.right =int((Orient.Line .x+60)*rato);
rect.top = int((Orient.Line .y+10)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText ("ZAYYARTAR RD;EIKSIETAN, TGG T/S",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+80)*rato);
rect.right =int((Orient.Line .x+160)*rato);
rect.top = int((Orient.Line .y-13)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font140);
pDC->DrawText ("Myanma Posts and Telecommunications",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+80)*rato);
rect.right =int((Orient.Line .x+160)*rato);
rect.top = int((Orient.Line .y-9)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font140);
pDC->DrawText ("Telephone Recntal and Calls Charges Bill",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+100)*rato);
rect.right =int((Orient.Line .x+180)*rato);
rect.top = int((Orient.Line .y+1)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("/DATE ",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
rect.left= int((Orient.Line .x+100)*rato);
rect.right =int((Orient.Line .x+180)*rato);
rect.top = int((Orient.Line .y+4)*rato);
rect.bottom =int((Orient.Line .y+23) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("/BILL No. ",-1,&rect,DT_LEFT|DT_LEFT|DT_SINGLELINE);
pDC->MoveTo (int((Orient.Line .x+100)*rato) ,int((Orient.Line .y+8)*rato));
pDC->LineTo (int((Orient.Line .x+150)*rato) ,int((Orient.Line .y+8)*rato));
pDC->MoveTo (int((Orient.Line .x+100)*rato) ,int((Orient.Line .y+8)*rato));
pDC->LineTo (int((Orient.Line .x+100)*rato) ,int((Orient.Line .y+22)*rato));
pDC->MoveTo (int((Orient.Line .x+100)*rato) ,int((Orient.Line .y+22)*rato));
pDC->LineTo (int((Orient.Line .x+150)*rato) ,int((Orient.Line .y+22)*rato));
pDC->MoveTo (int((Orient.Line .x+150)*rato) ,int((Orient.Line .y+22)*rato));
pDC->LineTo (int((Orient.Line .x+150)*rato) ,int((Orient.Line .y+8)*rato));
pDC->MoveTo (int((Orient.Line .x+100)*rato) ,int((Orient.Line .y+15)*rato));
pDC->LineTo (int((Orient.Line .x+150)*rato) ,int((Orient.Line .y+15)*rato));
pDC->MoveTo (int((Orient.Line .x+125)*rato) ,int((Orient.Line .y+8)*rato));
pDC->LineTo (int((Orient.Line .x+125)*rato) ,int((Orient.Line .y+22)*rato));
rect.left= int((Orient.Line .x+100)*rato);
rect.right =int((Orient.Line .x+125)*rato);
rect.top = int((Orient.Line .y+8)*rato);
rect.bottom =int((Orient.Line .y+15) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("ACCOUNT NO. ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+100)*rato);
rect.right =int((Orient.Line .x+125)*rato);
rect.top = int((Orient.Line .y+15)*rato);
rect.bottom =int((Orient.Line .y+22) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("BILL MONTH ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
pDC->MoveTo (int((Orient.Line .x-12)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+27)*rato));
pDC->MoveTo (int((Orient.Line .x-12)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x-12)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x-12)*rato) ,int((Orient.Line .y+55)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+55)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+27)*rato));
pDC->MoveTo (int((Orient.Line .x-12)*rato) ,int((Orient.Line .y+41)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+41)*rato));
pDC->MoveTo (int((Orient.Line .x+14)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+14)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+38)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+38)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+52)*rato) ,int((Orient.Line .y+34)*rato));
pDC->LineTo (int((Orient.Line .x+52)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+74)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+74)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+134)*rato) ,int((Orient.Line .y+27)*rato));
pDC->LineTo (int((Orient.Line .x+134)*rato) ,int((Orient.Line .y+55)*rato));
pDC->MoveTo (int((Orient.Line .x+14)*rato) ,int((Orient.Line .y+34)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+34)*rato));
rect.left= int((Orient.Line .x-12)*rato);
rect.right =int((Orient.Line .x+14)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+41) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("TELEPHONE N0. ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+14)*rato);
rect.right =int((Orient.Line .x+38)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+34) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("ANNUAL FEES ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+38)*rato);
rect.right =int((Orient.Line .x+74)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+34) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("LOCAL CALL ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+74)*rato);
rect.right =int((Orient.Line .x+110)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+34) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("TRUNK CALL ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+110)*rato);
rect.right =int((Orient.Line .x+134)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+34) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("OTHERS ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+134)*rato);
rect.right =int((Orient.Line .x+158)*rato);
rect.top = int((Orient.Line .y+27)*rato);
rect.bottom =int((Orient.Line .y+34) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("TOTAL ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
rect.left= int((Orient.Line .x+38)*rato);
rect.right =int((Orient.Line .x+52)*rato);
rect.top = int((Orient.Line .y+34)*rato);
rect.bottom =int((Orient.Line .y+41) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("MINUTE ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
pDC->MoveTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+57)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+57)*rato));
pDC->MoveTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+57)*rato));
pDC->LineTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+66)*rato));
pDC->MoveTo (int((Orient.Line .x+110)*rato) ,int((Orient.Line .y+66)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+66)*rato));
pDC->MoveTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+66)*rato));
pDC->LineTo (int((Orient.Line .x+158)*rato) ,int((Orient.Line .y+57)*rato));
pDC->MoveTo (int((Orient.Line .x+134)*rato) ,int((Orient.Line .y+57)*rato));
pDC->LineTo (int((Orient.Line .x+134)*rato) ,int((Orient.Line .y+66)*rato));
rect.left= int((Orient.Line .x+110)*rato);
rect.right =int((Orient.Line .x+134)*rato);
rect.top = int((Orient.Line .y+57)*rato);
rect.bottom =int((Orient.Line .y+66) *rato);
pOldFont=pDC->SelectObject(&font50);
pDC->DrawText ("THE MONTH ACCOUNT ",-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
}
pDC->SelectObject (pOldFont);
pDC->SelectObject (pOldPen);
return TRUE;
}
void printformatfaceDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
CDC* pDC;
pDC=GetDC();
rato=float(m_bitmapRect.right-m_bitmapRect.left)/Orient.Size .x;
m_bitmapRect.bottom =m_bitmapRect.top+int(Orient.Size .y *rato);
Draw(pDC,&m_bitmapRect);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -