// DLG_Corp_PayToUser_Print.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_PayToUser_Print.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_PayToUser_Print dialog DLG_Corp_PayToUser_Print::DLG_Corp_PayToUser_Print(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_PayToUser_Print::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Corp_PayToUser_Print) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT memset(&m_PayData,0,sizeof(m_PayData)); } void DLG_Corp_PayToUser_Print::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_PayToUser_Print) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Corp_PayToUser_Print, CDialog) //{{AFX_MSG_MAP(DLG_Corp_PayToUser_Print) ON_WM_TIMER() ON_BN_CLICKED(IDC_CORP_LXRPRINT_SF, OnCorpLxrprintSf) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_PayToUser_Print message handlers void DLG_Corp_PayToUser_Print::SetParam(ANS_PayToUserData *pPayData) { m_PayData = *pPayData; } BOOL DLG_Corp_PayToUser_Print::OnInitDialog() { CDialog::OnInitDialog(); SetTimer(1 , 100 , NULL ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Corp_PayToUser_Print::OnTimer(UINT_PTR nIDEvent) { CDialog::OnTimer(nIDEvent); if ( nIDEvent ==1 ) { KillTimer(nIDEvent); OnCorpLxrprintSf(); } } void DLG_Corp_PayToUser_Print::OnCorpLxrprintSf() { try { //#ifdef _DEBUG //Ԥ�� CPrnFrame * PrnFrame = new CPrnFrame(On_Print2,On_BeginPrint2,OnPreparePrinting2,this,this,false); PrnFrame->ShowWindow(SW_SHOW); PrnFrame->UpdateWindow(); //#else //��ӡ // CPrnFrame * PrnFrame = new CPrnFrame(On_Print2,On_BeginPrint2,OnPreparePrinting2,this,this,true); //#endif } catch( ...) { AfxMessageBox( _T("print error") ); } } RECT DLG_Corp_PayToUser_Print::MakeRect(long x, long y, long w, long h) { RECT rect={x,y,x+w,y+h}; return rect; } void DLG_Corp_PayToUser_Print::On_BeginPrint2(CDC *pDC, CPrintInfo *pInfo, void *pVoid) { } void DLG_Corp_PayToUser_Print::On_Print2(CDC *pDC, CPrintInfo *pInfo, void *pVoid) { DLG_Corp_PayToUser_Print * pDlg = (DLG_Corp_PayToUser_Print *)pVoid; CFont font,fontb,fontm,fontm2,*oldfont; CPoint point; int nWidth=pDC->GetDeviceCaps(HORZRES); int nHeight=pDC->GetDeviceCaps(VERTRES); int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX); int yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY); float xmm = ((float)xLogPixPerInch/24.5f); float ymm = ((float)yLogPixPerInch/24.5f); font.CreateFont(-MulDiv(12,-pDC->GetDeviceCaps(LOGPIXELSY),72), 0,0,0,FW_NORMAL,0,0,0,GB2312_CHARSET, OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY, VARIABLE_PITCH|FF_SWISS,_T("����")); fontb.CreateFont(-MulDiv(24,-pDC->GetDeviceCaps(LOGPIXELSY),72), 0,0,0,FW_NORMAL,0,0,0,GB2312_CHARSET, OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY, VARIABLE_PITCH|FF_SWISS,_T("����")); float lxAdd=20.0f; float lyAdd=15.0f; float fWidth1 =30.0f; float fWidth =160.0f; float fHeight =8.0f; int iRow = 10; long x=0,y=0,w=0,h=0; long x2=0,y2=0,w2=0,h2=0; CString str; oldfont=pDC->SelectObject(&fontb); //��ӡ��ݵ� x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd))*ymm+0.5f); w=(long)(((float)(fWidth))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); //���� pDC->DrawText(_T("����ƾ֤") ,&pDlg->MakeRect(x,y,w,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); lyAdd = lyAdd + 14.0f; //������ for ( int i=0 ; i<iRow+1 ; i++ ) { x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*(float)i))*ymm+0.5f); w=(long)(((float)(fWidth))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->MoveTo(x,y); pDC->LineTo(x+w,y); } //������ for ( i=0 ; i<3 ; i++ ) { switch(i) { case 0: x=(long)(((float)(lxAdd))*xmm+0.5f); break; case 1: x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); break; case 2: x=(long)(((float)(lxAdd+fWidth))*xmm+0.5f); break; } y=(long)(((float)(lyAdd))*ymm+0.5f); w=(long)(((float)(fWidth))*xmm+0.5f); h=(long)(((float)(fHeight*(float)(iRow)))*ymm+0.5f); pDC->MoveTo(x,y); pDC->LineTo(x,y+h); } float fRow=0.0f; oldfont=pDC->SelectObject(&font); //ƾ֤�� x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("ƾ֤��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str.Format( _T("%d") , pDlg->m_PayData.lPayID); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //�������� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("��������") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); if ( pDlg->m_PayData.lPayType==0 ) { pDC->DrawText(_T("�����̳��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); } if ( pDlg->m_PayData.lPayType==1 ) { if ( pDlg->m_PayData.lUserType==1 ) pDC->DrawText(_T("�������˿�") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); else if ( pDlg->m_PayData.lUserType==10 ) pDC->DrawText(_T("ADC�˿�") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); else pDC->DrawText(_T("�ն��û��˿�") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); } //��ҵ���� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("��ҵ����") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str.Format( _T("%s (ID:%d)") , pDlg->m_PayData.szCorpName , pDlg->m_PayData.lCorpID ); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //������ fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("������") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str.Format( _T("��%.2f (����:%d �� ����:%.4f)") , (float)pDlg->m_PayData.fPrice , pDlg->m_PayData.lSmsCount , pDlg->m_PayData.fPriceOne ); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //����ʱ�� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("����ʱ��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str.Format( _T("%04d��%02d��%02d��") , pDlg->m_PayData.tCD.wYear,pDlg->m_PayData.tCD.wMonth,pDlg->m_PayData.tCD.wDay ); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //������ fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("�����û�") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str.Format( _T("%s ǩ����"), pDlg->m_PayData.szCD_User ); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //����ǩ�� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("����ǩ��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); //����ʱ�� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("����ʱ��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); //ʵ����� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("ʵ�����") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f); w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f); str= _T("�� �� Ǫ �� ʮ Ԫ �� ��"); pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE); //����ǩ�� fRow++; x=(long)(((float)(lxAdd))*xmm+0.5f); y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f); w=(long)(((float)(fWidth1))*xmm+0.5f); h=(long)(((float)(fHeight))*ymm+0.5f); pDC->DrawText(_T("����ǩ��") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE); pDC->SelectObject(oldfont); font.DeleteObject(); fontb.DeleteObject(); } void DLG_Corp_PayToUser_Print::OnPreparePrinting2(CPrintInfo *pInfo) { pInfo->SetMaxPage(1); //ֻ��1ҳ /* //����� CWinApp* pApp = AfxGetApp(); pApp->GetPrinterDeviceDefaults(&pInfo->m_pPD->m_pd); if ( pInfo ) { LPDEVMODE lpDevmode = pInfo->m_pPD->GetDevMode(); if ( lpDevmode ) { lpDevmode->dmOrientation = DMORIENT_LANDSCAPE; } } */ }