我设计了一个绘图程序,可以在客户区域绘图,我想把绘好的图通过打印机打印出来,我看了一下VC的书籍,但是上面写得很简单,要么就是普通的调用OnDraw()函数,要么就是利用向导自动生成的代码,虽然可以打印,但是屏幕上的图形太小了,我使用StrechBlt时却使得图形放大后产生了失真,虽然能够打印,但是很难看,请教诸位高手,怎样才能随心所欲的打印呢?比如说,针对不同的纸张(A4、A3等纸张),怎样获得纸张的象素大小呢?怎样才能获得高级打印效果呢?心急如焚,谢谢了!

解决方案 »

  1.   

    把要打印的内容写到OnPrint()函数中。
      

  2.   

    怎样获得纸张的象素大小呢
    CDC prtDC;
    CPrintInfo printInfo;
    AfxGetApp()->GetPrinterDeviceDefaults(&printInfo.m_pPD->m_pd)
    HDC hDC = printInfo.m_pPD->m_pd.hDC;
    prtDC.Attach(hDC);
    page_width = prtDC.GetDeviceCaps(HORZRES);
    page_height = prtDC.GetDeviceCaps(VERTRES);得到了纸张的高与宽后,你就可以根据自己的比例 DRAW & PRINT 了!!