类似Excel表格的打印问题?
我正在做一个类似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(),请问怎摸办呀?