cplusplus

打印测试

上一篇 / 下一篇  2011-10-11 11:11:41 / 个人分类:VC

CPrintDialog dlg(FALSE);
 
    //dlg.GetDefaults(GetPrinterDC
 CDC dc;
// dlg.m_pd.lpPrintTemplateName

// dlg.m_pd.lpPrintTemplateName = (LPTSTR) MAKEINTRESOURCE(IDD_ABOUTBOX);
// dlg.m_pd.Flags |= PD_ENABLEPRINTTEMPLATE;

    dlg.GetDefaults();
    if (AfxGetApp()->GetPrinterDeviceDefaults(&dlg.m_pd))
    {      
        dc.Attach(dlg.GetPrinterDC());
        DOCINFO di;        
        di.cbSize = sizeof(DOCINFO);       
        di.lpszDocName = "Print BarCode";       
        di.lpszOutput = NULL;       
        di.lpszDatatype = NULL;       
        di.fwType = 0;
//  dlg.DoModal();
//  return ;

        dc.StartDoc(&di); //到这儿就出错了。
        dc.StartPage();       
//  dc.SetMapMode(MM_HIENGLISH);
//  m_fg.Print(&dc, m_fg.m_nFlags);
//  m_fg.PrintClient(&dc, NULL);
//  m_fg.Attach(dlg.GetPrinterDC());
//  m_fg.GetDC()->m_hDC;

//  char* text = "打印测试文本";
//  dlg.PrintAll();
//  dc.DrawText("打印测试文本");
//  dc.DrawText()

  if(!dc.BitBlt(0, 0, 1000, 500, m_fg.GetDC(), 0, 0, SRCCOPY))
  {
   MessageBox("DC复制失败!");
  }

  dlg.PrintAll();
//  dlg.PrintRange();

  
//  float xScale = getXScale(printDC);
//  float yScale = getYScale(printDC);
  
//  double x = cm2Unit_W(xScale, 2.5);
//  double y = cm2Unit_H(yScale, 2.5);
//  TextOut(dc.m_hDC, 10, 10, (LPTSTR)text, strlen(text));
  dc.EndPage();
  dc.EndDoc();
 }

// dlg.ReleaseDC(&dc);
 ReleaseDC(&dc);

CString txt = "this is test\r\n";
  txt += "this is the next row";
//  dc.TextOut(10, 10, txt);
  RECT rc = CRect(0, 0, 1000, 500);
  dc.DrawText(txt, &rc, NULL);

http://www.vckbase.com/document/viewdoc/?id=1186


TAG:

 

评分:0

我来说两句

Open Toolbar