范例宝典292
发表在C语言图书答疑 2009-12-23
是否精华
版块置顶:
void CEasyReportDlg::OnPrint() 
{
// TODO: Add your control notification handler code here
CPreview dlg;
CPrintDialog m_printdlg(false);
if (m_printdlg.DoModal()==IDOK)
{
CDC dc1;
dc1.Attach(m_printdlg.GetPrinterDC());
int leftmargin;
leftmargin = dc1.GetDeviceCaps(PHYSICALOFFSETX);
CRect m_rect(-leftmargin,0,dc1.GetDeviceCaps(PHYSICALWIDTH)-leftmargin,dc1.GetDeviceCaps(PHYSICALHEIGHT)) ;
dlg.DrawReport(m_rect,&dc1,true);
}
}



感觉CRect m_rect(-leftmargin,0,dc1.GetDeviceCaps(PHYSICALWIDTH)-leftmargin,dc1.GetDeviceCaps(PHYSICALHEIGHT)) ;应该为CRect m_rect(leftmargin,0,dc1.GetDeviceCaps(PHYSICALWIDTH)-leftmargin,dc1.GetDeviceCaps(PHYSICALHEIGHT)) ;


就是把-leftmargin改为leftmargin,因为是把打印页的原点作为起点的,为去掉物理页面左间距就左移leftmargin设备距离。

可能我理解错了,请指正!
分享到:
精彩评论 1
学分: LV1
2009-12-23
沙发
这是在DrawReport函数中,进行计算区域大小的算法有关。
你的理解也可以,不过可能要在修改下面函数的算法。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照