我用的是多页打印,设置了打印模式为MM_LOENGLISH,并且可以实现打印多页,但是,每次当我改变打印机的时候,就不正确了!
清帮我一下。我是不是还需要根据设置来改变我的打印模式呢!谢谢帮忙!不胜感激。(在线等待)

解决方案 »

  1.   

    这个恐怕不只是改变打印机的问题,换纸张类型恐怕也回出问题的吧,MM_LOENGLISH是按一逻辑单位转换成0。01英寸来计算大小的,这样定死了的转换方式适应性肯定不好,你应该考虑以下根据你设备的实际精度,对视口进行一下适当的缩放
      

  2.   

    这个,其实我对打印的理解也不太深,不太好意思在这里说,这样吧,你留个mail,我发一小段代码给你看看,不知道能不能对你有点帮助
      

  3.   

    [email protected]
    Thanks you!
      

  4.   

    我已经收到了。
    按照你的方案修改以后所有的实施土豆超过了我的试图范围,是不是我的坐标矢量不对!你给看一下:
    LOGFONT Titlelogfont;
    Titlelogfont.lfHeight=100;
    Titlelogfont.lfWidth=0;
    Titlelogfont.lfEscapement=0;
    Titlelogfont.lfOrientation=0;
    Titlelogfont.lfWeight=FW_NORMAL;
    Titlelogfont.lfItalic=FALSE;
    Titlelogfont.lfUnderline=FALSE;
    Titlelogfont.lfStrikeOut=FALSE;
    Titlelogfont.lfCharSet=GB2312_CHARSET;
    Titlelogfont.lfOutPrecision=OUT_STROKE_PRECIS;
        Titlelogfont.lfClipPrecision=CLIP_STROKE_PRECIS;
    Titlelogfont.lfQuality=DRAFT_QUALITY;
    Titlelogfont.lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
    strcpy(Titlelogfont.lfFaceName,"宋体");

    CFont font;                        //字体
    font.CreateFontIndirect(&Titlelogfont);
    CFont* oldfont=pDC->SelectObject(&font);
    int LineNum;
    UINT Counter=0;
    //Write Text
    // pDC->TextOut(460,980,"单位:");
    pDC->TextOut(500,1200,"序列号");
    pDC->TextOut(1120,1200,"统一号");
    pDC->TextOut(1920,1200,"荧光强度");
    // pDC->TextOut(2800,1200,"w(Au)/10e-6");
    pDC->TextOut(3800,1200,"备 注");
    pDC->TextOut(2500,1200,"系数");
    CString pagetemp;
    CTime m_time;
    m_time=CTime::GetCurrentTime();
    pagetemp=m_time.Format("%Y 年%m 月%d 日");
    pDC->TextOut(1900,980,pagetemp);
    //Draw Table
    pDC->MoveTo(1400,800);
    pDC->LineTo(3200,800); for(LineNum=0;LineNum<2;LineNum++)
    {
    pDC->MoveTo(400,300*LineNum+1100);
    pDC->LineTo(4300,300*LineNum+1100);
    }

    long RecordCounter=0;
    TVITEM tvItem;
    HTREEITEM hItem=m_Tree.GetRootItem();
    BOOL fCheck;
    CString cstrItem,cstrBuf;
        UINT SelectCon=0;
    LineNum=1;
    pDC->MoveTo(400,300*LineNum+1100);
    pDC->LineTo(4300,300*LineNum+1100);
    pDC->MoveTo(400,1100);
    pDC->LineTo(400,1100+LineNum*300);
    pDC->MoveTo(900,1100);
    pDC->LineTo(900,1100+LineNum*300);
    pDC->MoveTo(1680,1100);
    pDC->LineTo(1680,1100+LineNum*300);
    pDC->MoveTo(2460,1100);
    pDC->LineTo(2460,1100+LineNum*300); 
    pDC->MoveTo(2820,1100);
    pDC->LineTo(2820,1100+LineNum*300);
    pDC->MoveTo(3600,1100);
    pDC->LineTo(3600,1100+LineNum*300);
    pDC->MoveTo(4300,1100);
    pDC->LineTo(4300,1100+LineNum*300);
        LineNum++;
    if(ConNum==0)
    {
    pDC->TextOut(3000,1100+LineNum*300,"分析员:");
        pDC->TextOut(1680,1100+LineNum*300,"审 核:"); 
    pDC->TextOut(2950,1150,"W( )/10e+6");
    }