如题,现在项目中需要打印一些表格,打印机是什么样子的也不清楚,请大家多多指点

解决方案 »

  1.   

    http://www.vckbase.com/document/finddoc.asp?keyword=%B4%F2%D3%A1
      

  2.   

    前几天工作需要,对应了项目的打印功能,目前我知道两种实现打印的方法
    一、
    直接接调用MFC的打印功能OnFilePrint(),该函数对应系统的默认的映射消息,其中调用的部分函数可以供你按照需求重写,Onprint(),OnPerparePrinting()……好像一共有四个
    二、
    直接用VC比较底层的函数,通过获得打印机dc,然后向该dc中写入想要些的内容(想要打印的东西)就可以了希望可以可以帮到你^_^
      

  3.   

    二、 
    直接用VC比较底层的函数,通过获得打印机dc,然后向该dc中写入想要些的内容(想要打印的东西)就可以了 希望可以可以帮到你^_^昊雪,再具体点,呵呵,好不好,我没用过打印机,并且我这里也没有打印机,都看不到测试的结果,不知道能打印出什么。或者说格式对不对等等。
      

  4.   

    安装一个 Adobe Acrobat 或 Office 2003、2007 都会有虚拟打印机出来,可以很方便地看到打印结果。用 CreateDC ,以打印机名为参数,可以创建打印机 DC, 在打印机DC上画图和在屏幕DC上画图毫无差别,你要注意的是打印机的分辨率,如果输出分辨率是 300DPI,那么你画一条长300个像素的线就是1英寸长。
      

  5.   

    不好意思,工作忙才看到呵呵,本想把代码给你看,好像太长了,我把它们简略点给你首先,像四楼说的要CreateDC,不过可以偷懒一下:利用MFC的CPrintDialog类声明一个变量,利用它来CreateDC
    然后,把表格的内容循环读出并写入到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);  以上的代码可以根据需要循环红色字体之间的部分来分页打印内容开始我也有不能显示的情况,原因好像在于没有写红色字体不过只有以上代码可能打印效果不好,还有很多细节要注意的和添加你先试试看吧希望有用