MFC中如何实现对话框的打印
2017-01-19 03:09
381 查看
我现在想要对一个对话框实施打印,但是只能打印对话框的一部分,请问如何修改下面程序
CRect m_rect;
//获取图像的大小
MyStatic.GetClientRect(m_rect);
CDC* pImageDC = MyStatic.GetDC(); //获得控件画布
int formx, formy;
//获得屏幕分辨率
formx = pImageDC->GetDeviceCaps(LOGPIXELSX);
formy = pImageDC->GetDeviceCaps(LOGPIXELSY);
ReleaseDC(pImageDC);
CPrintDialog m_printdlg(FALSE); //构造打印对话框
if (m_printdlg.DoModal() == IDOK)
{
CDC pdc;
pdc.Attach(m_printdlg.GetPrinterDC());
//获取打印机与屏幕的分辨率比率
int printerx, printery;
printerx = pdc.GetDeviceCaps(LOGPIXELSX);
printery = pdc.GetDeviceCaps(LOGPIXELSY);
double ratex, ratey;
ratex = (double)printerx / formx;
ratey = (double)printery / formy;
CClientDC dc(this);
CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc, m_rect.Width(), m_rect.Height()); //创建位图
CDC imagedc;
imagedc.CreateCompatibleDC(&dc); //创建兼容的画布
imagedc.SelectObject(&bmp); //选入位图
imagedc.BitBlt(0, 0, m_rect.Width(), m_rect.Height(), &dc, 0, 0, SRCCOPY); //绘制位图
//打印图像
pdc.StartDoc("ceshi");
pdc.StretchBlt(0, 0, (int)(m_rect.Width()*ratex), (int)(m_rect.Height()*
ratey), &imagedc, 0, 0, m_rect.Width(), m_rect.Height(), SRCCOPY);
pdc.EndDoc();
}
CRect m_rect;
//获取图像的大小
MyStatic.GetClientRect(m_rect);
CDC* pImageDC = MyStatic.GetDC(); //获得控件画布
int formx, formy;
//获得屏幕分辨率
formx = pImageDC->GetDeviceCaps(LOGPIXELSX);
formy = pImageDC->GetDeviceCaps(LOGPIXELSY);
ReleaseDC(pImageDC);
CPrintDialog m_printdlg(FALSE); //构造打印对话框
if (m_printdlg.DoModal() == IDOK)
{
CDC pdc;
pdc.Attach(m_printdlg.GetPrinterDC());
//获取打印机与屏幕的分辨率比率
int printerx, printery;
printerx = pdc.GetDeviceCaps(LOGPIXELSX);
printery = pdc.GetDeviceCaps(LOGPIXELSY);
double ratex, ratey;
ratex = (double)printerx / formx;
ratey = (double)printery / formy;
CClientDC dc(this);
CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc, m_rect.Width(), m_rect.Height()); //创建位图
CDC imagedc;
imagedc.CreateCompatibleDC(&dc); //创建兼容的画布
imagedc.SelectObject(&bmp); //选入位图
imagedc.BitBlt(0, 0, m_rect.Width(), m_rect.Height(), &dc, 0, 0, SRCCOPY); //绘制位图
//打印图像
pdc.StartDoc("ceshi");
pdc.StretchBlt(0, 0, (int)(m_rect.Width()*ratex), (int)(m_rect.Height()*
ratey), &imagedc, 0, 0, m_rect.Width(), m_rect.Height(), SRCCOPY);
pdc.EndDoc();
}
相关文章推荐
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- MFC如何用正确的方式来实现鼠标移动对话框。
- 如何实现基于MFC对话框的PCL显示(1)
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- MFC对话框的打印预览实现
- MFC 如何实现对话框添加位图作为背景图
- MFC对话框的打印预览实现
- 如何实现基于MFC对话框的PCL显示
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印——贵在全面
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- MFC在对话框中实现打印预览
- MFC基于对话框的Media Player如何实现全屏显示功能?
- .Net环境下有关打印页面设置、打印机设置、打印预览对话框的实现(开源)---转
- NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现
- 如何在MFC的对话框调用CLR控件(From Msdn)
- 在Asp.net中如何实现弹出提示对话框
- 在Asp.net中如何实现弹出提示对话框