如题,现在项目中需要打印一些表格,打印机是什么样子的也不清楚,请大家多多指点
解决方案 »
- 如何实现表格行列拖动,换肤功能?
- DirectShow error C2065: “IMoniker ”: 未声明的标识符
- 坐标转换
- 关于FTP的问题,在线等待...
- 北京找软件工作有什么好的网站啊 大家推荐一下 分不够再加
- 请教:如何使listbox的每行显示不同的颜色。
- 简单问题,来着给分(100)
- ClistCtrl中。如何控制某一行,某一列的背景颜色?
- 我用CEdit.Create()创建一个编辑框, 我试了所有跟边框有关的Window Style都无法使之显示3D边框。请教为何?
- 请问用最简单的方法在对话框中放置一个位图,256色,并且设置掩码,不失真!
- Opengl 中的画面闪烁
- 如何等待或知道一个进程的主窗口被创建好了?!!!各位碰到这个问题吗?
一、
直接接调用MFC的打印功能OnFilePrint(),该函数对应系统的默认的映射消息,其中调用的部分函数可以供你按照需求重写,Onprint(),OnPerparePrinting()……好像一共有四个
二、
直接用VC比较底层的函数,通过获得打印机dc,然后向该dc中写入想要些的内容(想要打印的东西)就可以了希望可以可以帮到你^_^
直接用VC比较底层的函数,通过获得打印机dc,然后向该dc中写入想要些的内容(想要打印的东西)就可以了 希望可以可以帮到你^_^昊雪,再具体点,呵呵,好不好,我没用过打印机,并且我这里也没有打印机,都看不到测试的结果,不知道能打印出什么。或者说格式对不对等等。
然后,把表格的内容循环读出并写入到DC中,可以使用TextOut()以下是主要的代码://在不打开打印对话框的状态下获得打印机DC
CPrintDialog* pdlgNCPrint=new CPrintDialog(FALSE);
CDC dcPrint;
//get the print DC
pdlgNCPrint->GetDefaults( );//如果需要打开、设置打印对话框去掉该句,使用pdlgNCPrint->Domode();
HDC hPrintDC=pdlgNCPrint->CreatePrinterDC();//初始化一些相关的打印信息
DOCINFO diPrint;
//initalize the print document information
diPrint.cbSize = sizeof(DOCINFO);
diPrint.lpszDocName = _T("any title that you want to save as");
diPrint.lpszOutput = (LPTSTR) NULL;
diPrint.lpszDatatype = (LPTSTR) NULL;
diPrint.fwType = 0; StartDoc(hPrintDC,&diPrint);
StartPage(hPrintDC); for(数据不为空/没有结束的条件下循环)
{
CString strTemp = “你要输出的数据”;
TextOut(hPrintDC,nPrintX,nPrintY,strTemp,strTemp.GetLength());
}EndPage(hdc);
EndDoc(hdc); 以上的代码可以根据需要循环红色字体之间的部分来分页打印内容开始我也有不能显示的情况,原因好像在于没有写红色字体不过只有以上代码可能打印效果不好,还有很多细节要注意的和添加你先试试看吧希望有用