⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printformatfacedlg.cpp

📁 VC6.0环境下编写的一个交换机计费程序。
💻 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 + -