类似Excel表格的打印问题?

NewFree 2003-12-28 06:58:41
我正在做一个类似Excel的表格,其中涉及到打印问题,我想实现的功能是象Excel那样根据当前打印机设置的纸张大小在View中画虚线提示,这样使用者可一目了然。

目前遇到的问题是:
我在OnBeginPrinting(CDC *pDC, CPrintInfo *pInfo)中能用PrintDC得到纸张的大小:
CDC *pCurrentDC = GetDC();
if (!pCurrentDC) return;

CSize PaperPixelsPerInch(pDC->GetDeviceCaps(LOGPIXELSX), pDC->GetDeviceCaps(LOGPIXELSY));
CSize ScreenPixelsPerInch(pCurrentDC->GetDeviceCaps(LOGPIXELSX), pCurrentDC->GetDeviceCaps(LOGPIXELSY));


m_PaperSize = CSize(pDC->GetDeviceCaps(HORZRES), pDC->GetDeviceCaps(VERTRES));

但我画虚线是在OnDraw中,其dc并不是printDC,
在OnDraw()中
{
PaperSize = CSize(pDC->GetDeviceCaps(HORZRES), pDC->GetDeviceCaps(VERTRES));
。。。
}

PaperSize 显然和OnBeginPrinting()中的m_papersize大小不一样。


我又不可能在OnDraw中调用OnBeginPrinting(),请问怎摸办呀?
...全文
23 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewFree 2003-12-31
  • 打赏
  • 举报
回复
算了,不问了!!!
NewFree 2003-12-30
  • 打赏
  • 举报
回复
沉了
NewFree 2003-12-29
  • 打赏
  • 举报
回复
to xsc2001(IT浪子:

那什么时候进行纸张设置时并对papersize记录?
xsc2001 2003-12-28
  • 打赏
  • 举报
回复
你在程序初始化时对papersize设一个初始值,而在进行纸张设置时并对papersize记录,并更新视图。对取得的纸张大小转换成象素就行。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧