📄 mainfrm.cpp
字号:
// if(memDC.StartDoc(&di)<0)
// {
// ::MessageBox(hWnd, "连接到打印机失败!", "错误", MB_ICONSTOP);
// }
// else
// {
// iStart = 0;
// nTop = 25*yPix; //第一页最上线
// for(int iTotalPages = 1; iTotalPages<=nMaxPage; iTotalPages++)
// {
// int nCurPage = iTotalPages;
// csRFinality.Format("第 %i 页/共 %i 页", nCurPage, nMaxPage);
// time=CTime::GetCurrentTime();
// csLFinality = time.Format("报表日期:%Y-%m-%d");
//
// if(nCurPage != 1)
// nTop = 25*yPix-fAdd; //非第一页最上线
// if(nCurPage == 2)
// iStart = B5_ONELINE;
// if(nCurPage>2)
// iStart = B5_ONELINE+(nCurPage - 2)*B5_OTHERLINE;
// //开始页
// if(memDC.StartPage() < 0)
// {
// ::MessageBox(hWnd, _T("打印失败!"), "错误", MB_ICONSTOP);
// memDC.AbortDoc();
// return;
// }
// else
// {
// //打印
// //标题
// oldfont = memDC.SelectObject(&TitleFont);
// int nItem = B5_OTHERLINE;
// if(nCurPage == 1)
// {
// nItem = B5_ONELINE;
// rc.SetRect(0, yPix*10, B5_W*xPix, yPix*20);
// memDC.DrawText(szTitle, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// }
// //细节
// memDC.SelectObject(&DetailFont);
// rc.SetRect(nLeft, nTop, nRight, nTop+fAdd);
// //上横线
// memDC.MoveTo(rc.left, rc.top);
// memDC.LineTo(rc.right, rc.top);
//
// rt1.SetRect(nLeft, nTop, nLeft+20*xPix, nTop+fAdd); //学号
// rt2.SetRect(rt1.right, rt1.top, rt1.right + 25*xPix, rt1.bottom); //姓名
// rt3.SetRect(rt2.right, rt1.top, rt2.right + 10*xPix, rt1.bottom); //性别
// rt4.SetRect(rt3.right, rt1.top, rt3.right + 25*xPix, rt1.bottom); //专业
// rt5.SetRect(rt4.right, rt1.top, rt4.right + 25*xPix, rt1.bottom); //年级
// rt6.SetRect(rt5.right, rt1.top, rc.right, rt1.bottom); //班级
// memDC.DrawText("学 号", &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText("姓 名", &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText("性别", &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText("专 业", &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText("年 级", &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText("班 级", &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
//
// memDC.MoveTo(rt1.right, rt1.top);
// memDC.LineTo(rt1.right, rt1.bottom);
// memDC.MoveTo(rt2.right, rt1.top);
// memDC.LineTo(rt2.right, rt1.bottom);
// memDC.MoveTo(rt3.right, rt1.top);
// memDC.LineTo(rt3.right, rt1.bottom);
// memDC.MoveTo(rt4.right, rt1.top);
// memDC.LineTo(rt4.right, rt1.bottom);
// memDC.MoveTo(rt5.right, rt1.top);
// memDC.LineTo(rt5.right, rt1.bottom);
//// memDC.MoveTo(rt6.right, rt1.top);
//// memDC.LineTo(rt6.right, rt1.bottom);
// memDC.MoveTo(rc.left, rt1.bottom);
// memDC.LineTo(rc.right, rt1.bottom);
//
// TCHAR szID[32]={0}, szName[16]={0}, szSex[8]={0}, szZY[32]={0}, szNJ[32]={0}, szBJ[32]={0};
// rc.SetRect(nLeft, nTop+fAdd, nRight, nTop+2*fAdd);
// rt1.SetRect(nLeft+nTextAdd, rc.top, nLeft+20*xPix, rc.bottom); //学号
// rt2.SetRect(rt1.right+nTextAdd, rt1.top, rt1.right + 25*xPix, rt1.bottom); //姓名
// rt3.SetRect(rt2.right+nTextAdd, rt1.top, rt2.right + 10*xPix, rt1.bottom); //性别
// rt4.SetRect(rt3.right+nTextAdd, rt1.top, rt3.right + 25*xPix, rt1.bottom); //专业
// rt5.SetRect(rt4.right+nTextAdd, rt1.top, rt4.right + 25*xPix, rt1.bottom); //年级
// rt6.SetRect(rt5.right+nTextAdd, rt1.top, rc.right, rt1.bottom); //班级
//
// int nCountItem = ListView_GetItemCount(hList);
// for(int i=0;i<nItem; i++)
// {
// ListView_GetItemText(hList, i+iStart, 0, szID, 32);
// ListView_GetItemText(hList, i+iStart, 1, szName, 16);
// ListView_GetItemText(hList, i+iStart, 2, szSex, 8);
// ListView_GetItemText(hList, i+iStart, 3, szZY, 32);
// ListView_GetItemText(hList, i+iStart, 4, szNJ, 32);
// ListView_GetItemText(hList, i+iStart, 5, szBJ, 32);
//
// memDC.DrawText(szID, &rt1, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(szName, &rt2, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(szSex, &rt3, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(szZY, &rt4, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(szNJ, &rt5, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(szBJ, &rt6, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
// //下横线
// memDC.MoveTo(rc.left, rc.bottom);
// memDC.LineTo(rc.right, rc.bottom);
// memDC.MoveTo(rt1.right, rt1.top);
// memDC.LineTo(rt1.right, rt1.bottom);
// memDC.MoveTo(rt2.right, rt1.top);
// memDC.LineTo(rt2.right, rt1.bottom);
// memDC.MoveTo(rt3.right, rt1.top);
// memDC.LineTo(rt3.right, rt1.bottom);
// memDC.MoveTo(rt4.right, rt1.top);
// memDC.LineTo(rt4.right, rt1.bottom);
// memDC.MoveTo(rt5.right, rt1.top);
// memDC.LineTo(rt5.right, rt1.bottom);
//// memDC.MoveTo(rt6.right, rt1.top);
//// memDC.LineTo(rt6.right, rt1.bottom);
// memDC.MoveTo(rc.left, rt1.bottom);
// memDC.LineTo(rc.right, rt1.bottom);
//
// rc.top += fAdd;
// rc.bottom += fAdd;
// rt1.top = rc.top;
// rt1.bottom = rc.bottom;
// rt2.top = rt1.top;
// rt2.bottom = rt1.bottom;
// rt3.top = rt1.top;
// rt3.bottom = rt1.bottom;
// rt4.top = rt1.top;
// rt4.bottom = rt1.bottom;
// rt5.top = rt1.top;
// rt5.bottom = rt1.bottom;
// rt6.top = rt1.top;
// rt6.bottom = rt1.bottom;
//
// if((i+iStart+1)>=nCountItem)
// break;
// }
// //结尾
// memDC.MoveTo(rc.left, nTop);
// memDC.LineTo(rc.left, rc.top);
// memDC.MoveTo(rc.right, nTop);
// memDC.LineTo(rc.right, rc.top);
// memDC.DrawText(csLFinality, &rc, DT_LEFT| DT_VCENTER | DT_SINGLELINE);
// memDC.DrawText(csRFinality, &rc, DT_RIGHT| DT_VCENTER | DT_SINGLELINE);
// memDC.EndPage();
// memDC.SelectObject(oldfont);
// }
// }
// memDC.EndDoc();
// }
}
else
{
//打印预览
//边框线
hPenOld = memDC.SelectObject(&cPen);
rc.SetRect(0, 0, B5_W*xPix, B5_H*yPix);
memDC.Rectangle(&rc);
memDC.SelectObject(hPenOld);
//标题
oldfont = memDC.SelectObject(&TitleFont);
int nItem = B5_OTHERLINE;
if(nCurPage == 1)
{
nItem = B5_ONELINE;
rc.SetRect(0, yPix*10, B5_W*xPix, yPix*20);
memDC.DrawText(szTitle, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
}
//细节
memDC.SelectObject(&DetailFont);
rc.SetRect(nLeft, nTop, nRight, nTop+fAdd);
//上横线
memDC.MoveTo(rc.left, rc.top);
memDC.LineTo(rc.right, rc.top); //、、、、、 、、、、
rt1.SetRect(nLeft, nTop, nLeft+35*xPix, nTop+fAdd); //时间
rt2.SetRect(rt1.right, rt1.top, rt1.right + 15*xPix, rt1.bottom); //车站名
rt3.SetRect(rt2.right, rt1.top, rt2.right + 15*xPix, rt1.bottom); //车次号
rt4.SetRect(rt3.right, rt1.top, rt3.right + 15*xPix, rt1.bottom); //机车号
rt5.SetRect(rt4.right, rt1.top, rt4.right + 15*xPix, rt1.bottom); //机车类型
rt6.SetRect(rt5.right, rt1.top, rt5.right + 15*xPix, rt1.bottom); //公里标
rt7.SetRect(rt6.right, rt1.top, rt6.right + 12*xPix, rt1.bottom); //换长
rt8.SetRect(rt7.right, rt1.top, rt7.right + 10*xPix, rt1.bottom); //总重
rt9.SetRect(rt8.right, rt1.top, rt8.right + 10*xPix, rt1.bottom); //辆数
rt10.SetRect(rt9.right, rt1.top, rt9.right + 18*xPix, rt1.bottom); //信号机类型
rt11.SetRect(rt10.right, rt1.top, rc.right, rt1.bottom); //信息格式 //
memDC.DrawText("时 间", &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("车站名", &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("车次号", &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("机车号", &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("机车类型", &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("公里标", &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("换长", &rt7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("总重", &rt8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("辆数", &rt9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("信号机类型", &rt10, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText("信息格式", &rt11, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
memDC.MoveTo(rt1.right, rt1.top);
memDC.LineTo(rt1.right, rt1.bottom);
memDC.MoveTo(rt2.right, rt1.top);
memDC.LineTo(rt2.right, rt1.bottom);
memDC.MoveTo(rt3.right, rt1.top);
memDC.LineTo(rt3.right, rt1.bottom);
memDC.MoveTo(rt4.right, rt1.top);
memDC.LineTo(rt4.right, rt1.bottom);
memDC.MoveTo(rt5.right, rt1.top);
memDC.LineTo(rt5.right, rt1.bottom);
memDC.MoveTo(rt6.right, rt1.top);
memDC.LineTo(rt6.right, rt1.bottom);
memDC.MoveTo(rt7.right, rt1.top);
memDC.LineTo(rt7.right, rt1.bottom);
memDC.MoveTo(rt8.right, rt1.top);
memDC.LineTo(rt8.right, rt1.bottom);
memDC.MoveTo(rt9.right, rt1.top);
memDC.LineTo(rt9.right, rt1.bottom);
memDC.MoveTo(rt10.right, rt1.top);
memDC.LineTo(rt10.right, rt1.bottom);
// memDC.MoveTo(rt6.right, rt1.top);
// memDC.LineTo(rt6.right, rt1.bottom);
memDC.MoveTo(rc.left, rt1.bottom);
memDC.LineTo(rc.right, rt1.bottom);
TCHAR szTime[32]={0}, szStnNm[16]={0}, szTrain[8]={0}, szJcNum[32]={0}, szJcType[32]={0},
szGlb[32]={0}, szHc[32]={0}, szTotalWeight[32]={0}, szLs[32]={0}, szSingSort[16]={0}, szDataVer[32]={0};
rc.SetRect(nLeft, nTop+fAdd, nRight, nTop+2*fAdd);
rt1.SetRect(nLeft+nTextAdd, rc.top, nLeft+35*xPix, rc.bottom); //时间
rt2.SetRect(rt1.right+nTextAdd, rt1.top, rt1.right + 15*xPix, rt1.bottom); //车站名
rt3.SetRect(rt2.right+nTextAdd, rt1.top, rt2.right + 15*xPix, rt1.bottom); //车次号
rt4.SetRect(rt3.right+nTextAdd, rt1.top, rt3.right + 15*xPix, rt1.bottom); //机车号
rt5.SetRect(rt4.right+nTextAdd, rt1.top, rt4.right + 15*xPix, rt1.bottom); //机车类型
rt6.SetRect(rt5.right+nTextAdd, rt1.top, rt5.right + 15*xPix, rt1.bottom); //公里标
rt7.SetRect(rt6.right+nTextAdd, rt1.top, rt6.right + 12*xPix, rt1.bottom); //换长
rt8.SetRect(rt7.right+nTextAdd, rt1.top, rt7.right + 10*xPix, rt1.bottom); //总重
rt9.SetRect(rt8.right+nTextAdd, rt1.top, rt8.right + 10*xPix, rt1.bottom); //辆数
rt10.SetRect(rt9.right+nTextAdd, rt1.top, rt9.right + 18*xPix, rt1.bottom); //信号机类型
rt11.SetRect(rt10.right+nTextAdd, rt1.top, rc.right, rt1.bottom); //信息格式 /
int nCountItem = ListView_GetItemCount(hList);
for(int i=0;i<nItem; i++)
{
ListView_GetItemText(hList, i+iStart, 0, szTime, 32);
ListView_GetItemText(hList, i+iStart, 1, szStnNm, 16);
ListView_GetItemText(hList, i+iStart, 2, szTrain, 8);
ListView_GetItemText(hList, i+iStart, 3, szJcNum, 32);
ListView_GetItemText(hList, i+iStart, 4, szJcType, 32);
ListView_GetItemText(hList, i+iStart, 5, szGlb, 32);
ListView_GetItemText(hList, i+iStart, 6, szHc, 32);
ListView_GetItemText(hList, i+iStart, 7, szTotalWeight, 32);
ListView_GetItemText(hList, i+iStart, 8, szLs, 32);
ListView_GetItemText(hList, i+iStart, 9, szSingSort,32);
ListView_GetItemText(hList, i+iStart, 10,szDataVer, 32);
memDC.DrawText(szTime, &rt1, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szStnNm, &rt2, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szTrain, &rt3, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szJcNum, &rt4, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szJcType, &rt5, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szGlb, &rt6, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szHc, &rt7, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szTotalWeight, &rt8, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szLs, &rt9, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szSingSort,&rt10, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(szDataVer, &rt11, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
//下横线
memDC.MoveTo(rc.left, rc.bottom);
memDC.LineTo(rc.right, rc.bottom);
memDC.MoveTo(rt1.right, rt1.top);
memDC.LineTo(rt1.right, rt1.bottom);
memDC.MoveTo(rt2.right, rt1.top);
memDC.LineTo(rt2.right, rt1.bottom);
memDC.MoveTo(rt3.right, rt1.top);
memDC.LineTo(rt3.right, rt1.bottom);
memDC.MoveTo(rt4.right, rt1.top);
memDC.LineTo(rt4.right, rt1.bottom);
memDC.MoveTo(rt5.right, rt1.top);
memDC.LineTo(rt5.right, rt1.bottom);
memDC.MoveTo(rt6.right, rt1.top);
memDC.LineTo(rt6.right, rt1.bottom);
memDC.MoveTo(rt7.right, rt1.top);
memDC.LineTo(rt7.right, rt1.bottom);
memDC.MoveTo(rt8.right, rt1.top);
memDC.LineTo(rt8.right, rt1.bottom);
memDC.MoveTo(rt9.right, rt1.top);
memDC.LineTo(rt9.right, rt1.bottom);
memDC.MoveTo(rt10.right, rt1.top);
memDC.LineTo(rt10.right, rt1.bottom);
// memDC.MoveTo(rt6.right, rt1.top);
// memDC.LineTo(rt6.right, rt1.bottom);
memDC.MoveTo(rc.left, rt1.bottom);
memDC.LineTo(rc.right, rt1.bottom);
rc.top += fAdd;
rc.bottom += fAdd;
rt1.top = rc.top;
rt1.bottom = rc.bottom;
rt2.top = rt1.top;
rt2.bottom = rt1.bottom;
rt3.top = rt1.top;
rt3.bottom = rt1.bottom;
rt4.top = rt1.top;
rt4.bottom = rt1.bottom;
rt5.top = rt1.top;
rt5.bottom = rt1.bottom;
rt6.top = rt1.top;
rt6.bottom = rt1.bottom;
rt7.top = rt1.top;
rt7.bottom = rt1.bottom;
rt8.top = rt1.top;
rt8.bottom = rt1.bottom;
rt9.top = rt1.top;
rt9.bottom = rt1.bottom;
rt10.top = rt1.top;
rt10.bottom = rt1.bottom;
rt11.top = rt1.top;
rt11.bottom = rt1.bottom;
if((i+iStart+1)>=nCountItem)
break;
}
//结尾
memDC.MoveTo(rc.left, nTop);
memDC.LineTo(rc.left, rc.top);
memDC.MoveTo(rc.right, nTop);
memDC.LineTo(rc.right, rc.top);
memDC.DrawText(csLFinality, &rc, DT_LEFT| DT_VCENTER | DT_SINGLELINE);
memDC.DrawText(csRFinality, &rc, DT_RIGHT| DT_VCENTER | DT_SINGLELINE);
memDC.SelectObject(oldfont);
memDC.SelectObject(hPenOld);
}
TitleFont.DeleteObject();
DetailFont.DeleteObject();
cPen.DeleteObject();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -