打印ListBox所有项

来源:互联网 发布:java怎么打包 编辑:程序博客网 时间:2024/06/11 09:56

vc2008中,打印ListBox所有项,代码如下:

ListBox控件变量:m_listbox;

<pre name="code" class="cpp">void Cstudy2008Dlg::OnBnClickedBtprint(){//print listboxint iCount=m_listbox.GetCount();if(iCount==0){      AfxMessageBox (L"没有数据记录要打印!" );      return;} CClientDC dc(this);//屏幕dc//获取打印机DC        CPrintDialog m_printdlg(FALSE);if (m_printdlg.DoModal()==IDOK){    CDC dc1;    dc1.Attach(m_printdlg.GetPrinterDC());//打印机dc    int screenx,screeny;    int printx,printy;    double ratex,ratey;     //确定打印机与屏幕的像素比率    screenx =  dc.GetDeviceCaps(LOGPIXELSX);    screeny =  dc.GetDeviceCaps(LOGPIXELSY);    printx =  dc1.GetDeviceCaps(LOGPIXELSX);    printy =  dc1.GetDeviceCaps(LOGPIXELSY);    ratex = (double)(printx)/screenx;    ratey = (double)(printy)/screeny;    //开始打印    dc1.StartDoc(_T("测量记录"));    //打印listbox每项    CString strLine;    CRect rectLine;    for(int i=0;i<iCount;i++)    {m_listbox.GetItemRect(i,rectLine);rectLine.left*=ratex;rectLine.top*=ratey;m_listbox.GetText(i,strLine); dc1.TextOut(rectLine.left, rectLine.top, strLine);//向打印机输出每行文本    }    dc1.EndDoc();}
}

0 0
原创粉丝点击