如果需要打印时,我一般总是用MM_LOWMETRIC映射模式绘图,这样绘制出来的东西直接就是打印预览了。

解决方案 »

  1.   


    kimo1980(ok) :
        你好!
        请您将"用MM_LOWMETRIC映射模式绘图,这样绘制出来的东西直接就是打印预览了。"说详细点好吗?
        谢谢!!!
      

  2.   

    好象存在两个问题:
    1.记录集没有移动到下一个记录
    2.打印的纵坐标没有随记录而增加
    试试:           
              int nHeight=20;           
              int i=0;
              while(!theApp.m_pRecordset->adoEOF)
      {
          vU1 =theApp.m_pRecordset->GetCollect("DingDanNum");
                      .....................
                   pDC->TextOut(1000,i*nHeight,(char*)(_bstr_t)vU1);
                 
                     .........................
                  theApp.m_pRecordset->MoveNext();
                   i++;
                 }
      

  3.   

    如果你指的是使用MFC“文档-视”结构中的打印预览,建议最好用逻辑坐标绘图,这样可以做到所见即所得,而且窗口中的内容还可以指定比例缩放(就像MS-WORD中的一样),CSDN中就有这样的例子,我记得好像叫ZoomScale之类的,找找吧。
      如果是要自己编写打印预览,建议参考一下MFC中CView类的源码,应该会有帮助。
      

  4.   

    MM_LOMETRICS映射模式下,一个逻辑单位等于0.1毫米,因此你可以用实际的尺寸绘制,这样在窗口上画出来是什么样,打印在纸张上也是什么样,连尺寸也一致,此即为打印预览。