📄 feeviewprintmonthface.cpp
字号:
lfen=0;
ljiao++;
if (ljiao>=10)
{
ljiao=0;
lyuan++;
}
}
}
ltemp=lyuan*100+ljiao*10+lfen;
lcs+=ltemp;
}
cs.Format("%d",lcs/100);
cs+=".";
strtemp.Format("%d",lcs%100);
cs+=strtemp;
rect.left= int((x+227)*rato1);
rect.right =int((x+304)*rato1);
rect.top = int((y-90)*rato1);
rect.bottom =int((y-34) *rato1);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText (cs,-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
lcs=0;
cs="";
strtemp="";
for( t=8;t<10;t++)
{
strtemp = pList->GetItemText(i, t);
long lyuan,ljiao,lfen,lli;
float flotemp;
long ltemp;
flotemp=atof(strtemp);
flotemp=flotemp*10000;
lyuan=(flotemp/10000);
ljiao=(flotemp-lyuan*10000)/1000;
lfen=(flotemp-lyuan*10000-ljiao*1000)/100;
lli=(flotemp-lyuan*10000-ljiao*1000-lfen*100)/10;
if (lli>=5)
{
lfen++;
if (lfen>=10)
{
lfen=0;
ljiao++;
if (ljiao>=10)
{
ljiao=0;
lyuan++;
}
}
}
ltemp=lyuan*100+ljiao*10+lfen;
lcs+=ltemp;
}
cs.Format("%d",lcs/100);
cs+=".";
strtemp.Format("%d",lcs%100);
cs+=strtemp;
rect.left= int((x+304)*rato1);
rect.right =int((x+414)*rato1);
rect.top = int((y-90)*rato1);
rect.bottom =int((y-34) *rato1);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText (cs,-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
lcs=0;
cs="";
strtemp="";
for( t=10;t<11;t++)
{
strtemp = pList->GetItemText(i, t);
long lyuan,ljiao,lfen,lli;
float flotemp;
long ltemp;
flotemp=atof(strtemp);
flotemp=flotemp*10000;
lyuan=(flotemp/10000);
ljiao=(flotemp-lyuan*10000)/1000;
lfen=(flotemp-lyuan*10000-ljiao*1000)/100;
lli=(flotemp-lyuan*10000-ljiao*1000-lfen*100)/10;
if (lli>=5)
{
lfen++;
if (lfen>=10)
{
lfen=0;
ljiao++;
if (ljiao>=10)
{
ljiao=0;
lyuan++;
}
}
}
ltemp=lyuan*100+ljiao*10+lfen;
lcs+=ltemp;
}
cs.Format("%d",lcs/100);
cs+=".";
strtemp.Format("%d",lcs%100);
cs+=strtemp;
rect.left= int((x+414)*rato1);
rect.right =int((x+485)*rato1);
rect.top = int((y-90)*rato1);
rect.bottom =int((y-34) *rato1);
pOldFont=pDC->SelectObject(&font90);
pDC->DrawText (cs,-1,&rect,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
}
}
void CFeeView::OnPrintSetprintermonthface()
{
// TODO: Add your command handler code here
CPrintDialog pd(TRUE);
AfxGetApp()->DoPrintDialog(&pd);
}
void CFeeView::OnPrintSetfontmonthface()
{
// TODO: Add your command handler code here
CprintsetfontDlg setfontdlg;
int nResponse;
nResponse=setfontdlg.DoModal();
if (nResponse!=IDOK)
{
return;
}
}
void CFeeView::OnPrintSetmarginmonthface()
{
// TODO: Add your command handler code here
CprintsetmaginDlg setmagindlg;
int nResponse;
nResponse=setmagindlg.DoModal();
if (nResponse!=IDOK)
{
return;
}
}
extern bool bGfxUserAbort;
BOOL CALLBACK EXPORT _GfxAbortProcmonthface( HDC, int )
{
MSG msg;
while (!bGfxUserAbort && ::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE))
{
if (!AfxGetThread()->PumpMessage()) return FALSE;
}
return !bGfxUserAbort;
}
void CFeeView::OnPrintmonthface()
{
// TODO: Add your command handler code here
// TODO: Add your command handler code here
CPrintInfo printInfo;
ASSERT(printInfo.m_pPD != NULL); // must be set
if (OnPreparePrintingmonthface(&printInfo))
{
ASSERT(printInfo.m_pPD->m_pd.hDC != NULL);
// gather file to print to if print-to-file selected
CString strOutput;
if (printInfo.m_pPD->m_pd.Flags & PD_PRINTTOFILE)
{
// construct CFileDialog for browsing
CString strDef(MAKEINTRESOURCE(AFX_IDS_PRINTDEFAULTEXT));
CString strPrintDef(MAKEINTRESOURCE(AFX_IDS_PRINTDEFAULT));
CString strFilter(MAKEINTRESOURCE(AFX_IDS_PRINTFILTER));
CString strCaption(MAKEINTRESOURCE(AFX_IDS_PRINTCAPTION));
CFileDialog dlg(FALSE, strDef, strPrintDef, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, strFilter);
dlg.m_ofn.lpstrTitle = strCaption;
if (dlg.DoModal() != IDOK) return;
// set output device to resulting path name
strOutput = dlg.GetPathName();
}
DOCINFO docInfo;
memset(&docInfo, 0, sizeof(DOCINFO));
docInfo.cbSize = sizeof(DOCINFO);
strTitle="twd charging system";
docInfo.lpszDocName = strTitle;
CString strPortName;
int nFormatID;
if (strOutput.IsEmpty())
{
docInfo.lpszOutput = NULL;
strPortName = printInfo.m_pPD->GetPortName();
nFormatID = AFX_IDS_PRINTONPORT;
}
else
{
docInfo.lpszOutput = strOutput;
nFormatID = AFX_IDS_PRINTTOFILE;
}
// setup the printing DC
CDC dcPrint;
dcPrint.Attach(printInfo.m_pPD->m_pd.hDC); // attach printer dc
dcPrint.m_bPrinting = TRUE;
printInfo.m_rectDraw.SetRect(0, 0, dcPrint.GetDeviceCaps(HORZRES), dcPrint.GetDeviceCaps(VERTRES));
dcPrint.DPtoLP(&printInfo.m_rectDraw);
OnBeginPrintingmonthface(&dcPrint, &printInfo);
dcPrint.SetAbortProc(_GfxAbortProcmonthface);
// disable main window while printing & init printing status dialog
CString csFormat, cs, strTemp;
AfxGetMainWnd()->EnableWindow(FALSE);
/*
CPrintStatus dlgPrintStatus(pParent);
cs.Format("Stampa di %s in corso ..", strTitle);
dlgPrintStatus.SetWindowText(cs);
dlgPrintStatus.GetDlgItemText(IDC_TEXT1, csFormat);
AfxFormatString1(strTemp, nFormatID, strPortName);
cs.Format(csFormat, strTitle, printInfo.m_pPD->GetDeviceName(), strTemp);
dlgPrintStatus.SetDlgItemText(IDC_TEXT1, cs);
dlgPrintStatus.ShowWindow(SW_SHOW);
dlgPrintStatus.UpdateWindow();
*/
// start document printing process
if (dcPrint.StartDoc(&docInfo) == SP_ERROR)
{
// enable main window before proceeding
AfxGetMainWnd()->EnableWindow(TRUE);
// cleanup and show error message
OnEndPrintingmonthface(&dcPrint, &printInfo);
//dlgPrintStatus.DestroyWindow();
dcPrint.Detach(); // will be cleaned up by CPrintInfo destructor
AfxMessageBox(AFX_IDP_FAILED_TO_START_PRINT);
return;
}
// Guarantee values are in the valid range
UINT nEndPage = printInfo.GetToPage();
UINT nStartPage = printInfo.GetFromPage();
if (nEndPage < printInfo.GetMinPage()) nEndPage = printInfo.GetMinPage();
if (nEndPage > printInfo.GetMaxPage()) nEndPage = printInfo.GetMaxPage();
if (nStartPage < printInfo.GetMinPage()) nStartPage = printInfo.GetMinPage();
if (nStartPage > printInfo.GetMaxPage()) nStartPage = printInfo.GetMaxPage();
int nStep = (nEndPage >= nStartPage) ? 1 : -1;
nEndPage = (nEndPage == 0xffff) ? 0xffff : nEndPage + nStep;
int iPageTot = abs(abs(nEndPage) - abs(nStartPage)), iPrintedPages = 0;
CString csPageFormat;
//dlgPrintStatus.GetDlgItemText(IDC_PAGES, csPageFormat);
// begin page printing loop
DWORD dwStart = GetTickCount(), dTickPerPage = 0;
//dlgPrintStatus.wndProg.SetRange(0, iPageTot);
//dlgPrintStatus.wndProg.SetPos(0);
bool bRectSet = false;
BOOL bError = FALSE;
for (printInfo.m_nCurPage = nStartPage; printInfo.m_nCurPage != nEndPage; printInfo.m_nCurPage += nStep)
// if (printInfo.m_nCurPage == nStartPage)
{
//TCHAR szBuf[80];
//iPrintedPages ++;
//dlgPrintStatus.wndProg.SetPos(iPrintedPages);
//dlgPrintStatus.wndProg.UpdateWindow();
//wsprintf(szBuf, "%d %%", iPrintedPages*100/iPageTot);
//dlgPrintStatus.SetDlgItemText(IDC_PC, szBuf);
OnPrepareDC(&dcPrint, &printInfo);
// check for end of print
// if (!printInfo.m_bContinuePrinting) break;
// write current page
/*
DWORD tck = dTickPerPage * (iPageTot - iPrintedPages + 1) / 1000;
if (tck > 60)
{
tck |= 60;//tck != 60;
DWORD tckS = tck%60;
tck /= 60;
strTemp.Format("%d minuti, %d secondi", tck, tckS);
}
else
{
if (iPageTot > 1)
{
if (tck > 0) strTemp.Format("%d secondi", tck);
else strTemp = "??";
}
}
wsprintf(szBuf, csPageFormat, iPrintedPages, iPageTot, strTemp);
*/
//dlgPrintStatus.SetDlgItemText(IDC_PAGES, szBuf);
printInfo.m_rectDraw.SetRect(0, 0, dcPrint.GetDeviceCaps(HORZRES), dcPrint.GetDeviceCaps(VERTRES));
dcPrint.DPtoLP(&printInfo.m_rectDraw);
// attempt to start the current page
/*
if (dcPrint.StartPage() < 0)
{
bError = TRUE;
break;
}
*/
OnPrepareDC(&dcPrint, &printInfo);
ASSERT(printInfo.m_bContinuePrinting);
// page successfully started, so now render the page
int is = dcPrint.SaveDC();
OnPrintmonthface(&dcPrint, &printInfo);
/*
if (dcPrint.EndPage() < 0 || !_GfxAbortProc(dcPrint.m_hDC, 0))
{
bError = TRUE;
break;
}
*/
dcPrint.RestoreDC(is);
dcPrint.EndPage(); //通知打印机驱动程序页结束
//dTickPerPage = (GetTickCount() - dwStart) / iPrintedPages;
}
// cleanup document printing process
//dc.SelectObject(def_font); //恢复原来的字体
ftPrint.DeleteObject();
ftHead.DeleteObject();
ftFoot.DeleteObject();
//font.DeleteObject();
dcPrint.EndPage(); //通知打印机驱动程序页结束
if (!bError) dcPrint.EndDoc();
else dcPrint.AbortDoc();
AfxGetMainWnd()->EnableWindow(); // enable main window
OnEndPrintingmonthface(&dcPrint, &printInfo); // clean up after printing
// dlgPrintStatus.DestroyWindow();
//dcPrint.Detach(); // will be cleaned up by CPrintInfo destructor
//
DeleteDC(dcPrint.Detach());
if (iNumCol)
{
if (pDx) delete [] pDx;
if (pFormat) delete [] pFormat;
if (pColTitle)
{
for (int t = 0; t < iNumCol; t++)
if (pColTitle[t]) delete [] pColTitle[t];
delete [] pColTitle;
}
}
//
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -