请教 RichEdit5.0 打印问题 表格变大,急急急!

wytx111 2011-12-23 10:55:09
各位高手好,我碰到一个紧急的问题,在VC中使用RichEdit5.0,本身显示的时候是在一个View里面动态创建RichEdit控件,原来打印的时候都是通过TextOut实现打印,升级到5.0之后GetCharPos出现问题,只能打印一半内容,现在改为DrawText,但是在打印表格的时候就不行了,现在打印表格我用了FormatRange,但是发现表格被放大了,我不知道表格怎么会变大的,附上代码,请各位指教,很急,急,急。
void CReport::PrintRichEdit(CRptRichEdit *pRichEdit, CDC *dc, CRect rect)
{
FORMATRANGE fr;
int nLast = 0;
//RECT richPage;

CRect richPage(0, 0, 1000, 1000);
CRect rPage(700,3200,800,4500);

UINT nCurPrinterResX = dc->GetDeviceCaps(LOGPIXELSX);
float fPrnScrRatio = static_cast <float>(nCurPrinterResX * 1.0 / 96);

long lLineWidth = ::MulDiv(rect.Width()*fPrnScrRatio, 1440, dc->GetDeviceCaps(LOGPIXELSX));

/* richPage.left = ::MulDiv(rect.left*fPrnScrRatio, 1440, dc->GetDeviceCaps(LOGPIXELSX));
richPage.top = ::MulDiv(rect.top*fPrnScrRatio , 1440, dc->GetDeviceCaps(LOGPIXELSY));
richPage.right = ::MulDiv(rect.right*fPrnScrRatio, 1440, dc->GetDeviceCaps(LOGPIXELSX));
richPage.bottom= ::MulDiv(rect.bottom*fPrnScrRatio, 1440, dc->GetDeviceCaps(LOGPIXELSY));
*/
//richPage=rect;

long lWidth = dc->GetDeviceCaps(PHYSICALWIDTH);
long lpixel = dc->GetDeviceCaps(LOGPIXELSX);
lpixel = dc->GetDeviceCaps(LOGPIXELSY);

PARAFORMAT2 pf;
pf.cbSize = sizeof(PARAFORMAT2);
pf.dwMask = PFM_OFFSET;
//pf.wNumbering = PFN_BULLET; //注意PFM_NUMBERING
pf.dxOffset = 2;
VERIFY(pRichEdit->SetParaFormat(pf));

SetModifiedFlag(false);

fr.hdc = dc->m_hDC;
fr.hdcTarget = dc->m_hDC;
fr.rc = rPage;
fr.rcPage = richPage;
fr.chrg.cpMin = nLast;
fr.chrg.cpMax = -1;
//dc->SaveDC();
pRichEdit->SetTargetDevice(*dc, lLineWidth);
nLast = pRichEdit->FormatRange(&fr, TRUE);
fr.chrg.cpMax = nLast;

pRichEdit->DisplayBand(&richPage);
pRichEdit->FormatRange(NULL, FALSE);
dc->RestoreDC(-1);
}
...全文
27 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2011-12-23 10:55
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……