您的位置:首页 > 编程语言 > C语言/C++

打印ListBox所有项

2016-06-21 15:40 411 查看
vc2008中,打印ListBox所有项,代码如下:

ListBox控件变量:m_listbox;

<pre name="code" class="cpp">void Cstudy2008Dlg::OnBnClickedBtprint()
{
//print listbox
int 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();
}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vc++ vc2008 listbox 打印