下面是我的打印函数
可实际打印时却只能打印到一行,不知为什么,请各位赐教,谢谢!!
CDC dc;
CPrintInfo pInfo;
CPrintDialog printDlg(FALSE);
if ( AfxGetApp()->DoPrintDialog(pInfo.m_pPD) != IDOK )
return;
if ( pInfo.m_pPD->m_pd.Flags & PD_PRINTTOFILE )
{
TRACE("Request to print into file\n");
return;
}
ASSERT(pInfo.m_pPD != NULL);
    if(pInfo.m_pPD->m_pd.hDC == NULL)
return;
dc.Attach(pInfo.m_pPD->m_pd.hDC);
dc.m_bPrinting= TRUE;
DOCINFO docInfo;
memset(&docInfo,0,sizeof(DOCINFO));
docInfo.cbSize = sizeof(DOCINFO);
docInfo.lpszDocName = "Sample Printing";
docInfo.lpszOutput = NULL ;
if( dc.StartDoc(&docInfo)<0 )
{
dc.Detach();
TRACE("Occured Exception when Starting Print Job");
return;
}
dc.TextOut(0,0,"dffdlkkdl试打印文件kldfkldfsklfsdkldfsklkl\n");
dc.TextOut(5,5,"测试打印文件内容\n");
         dc.TextOut(10,10,"测试打印文件内容\n");
dc.TextOut(15,15,"我的打印内容为非诉讼法速度司法司法非\n");
   
         dc.EndDoc();  dc.Detach();

解决方案 »

  1.   

    if( dc.StartDoc(&docInfo)<0 )
    {
    dc.Detach();
    TRACE("Occured Exception when Starting Print Job");
    return;
    }
    → if( dc.StartPage()<0 )
    → {
    → dc.EndDoc(); 
    → dc.Detach();
    → TRACE("Occured Exception when Starting a page!");
    → return;
    → }
    dc.TextOut(0,0,"dffdlkkdl试打印文件kldfkldfsklfsdkldfsklkl\n");
    dc.TextOut(5,5,"测试打印文件内容\n");
             dc.TextOut(10,10,"测试打印文件内容\n");
    dc.TextOut(15,15,"我的打印内容为非诉讼法速度司法司法非\n");→ dc.EndPage();
             dc.EndDoc();  dc.Detach();这样试试:)
      

  2.   

    请问如何在打印时,打印到不同的行
    即我的程序中为什么dc.TextOut(y,x "****")
    不起作用
      

  3.   

    老大,你没搞错吧
    对于打钱机来说,5是太小了,你每5个象素一个行根本分不清
    你把这个数设大一点
    比如说200差不多
    另外,应该象: lonely001(独行客) 这样写