VC中打印
我创建一个打印机设备句柄 
然后textout(hdcprint,1,200,"操作员",6);打印,发现打印正常,但是字体太小,请问各位,如何设置字体,才能使字变大?????

解决方案 »

  1.   

    Create一个 Font, 设置好字体属性后, 然后:
    SelectObject(hdcprint, hFont);
      

  2.   

    CFont *f,*pOldFont; 
    f = new CFont; 
    f->CreateFont(100, // 字体高度 
    100, // 字体宽度 
    0, // nEscapement 
    0, // nOrientation 
    FW_BOLD, // nWeight 
    FALSE, // bItalic 
    FALSE, // bUnderline 
    0, // cStrikeOut 
    ANSI_CHARSET, // nCharSet 
    OUT_DEFAULT_PRECIS, // nOutPrecision 
    CLIP_DEFAULT_PRECIS, // nClipPrecision 
    DEFAULT_QUALITY, // nQuality 
    DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 
    _T("宋体")); // lpszFac SelectObject(hdcprint,f); 
    然后textout();
    但是字体大小一点没变!!!
      

  3.   

    我这里有个打印的程序,并且能用CreateFont创建字体,不过我还没研究过,你可以加我qq我发给你,其他的得你自己看了,函数在StringView.cpp里,是onDraw函数
      

  4.   

    字体的参数不能随便设置,否则系统会找不到合适的字体。HFONT hFont = (HFONT) ::GetStockObject(DEFAULT_GUI_FONT);
    LOGFONT lf;
    ::GetObject(hFont, sizeof(LOGFONT), &lf);CFont DataFont;
    DataFont.CreateFontIndirect(&lf); //通常窗口正文字体lf.lfWeight = 700;
    CFont HeadFont;
    HeadFont.CreateFontIndirect(&lf); //加粗字体lf.lfHeight = -19;
    CFont TitleFont;
    TitleFont.CreateFontIndirect(&lf); //标题字体上面我创建了3个字节,你分别把他们选入你的打印机DC,再绘制一串文字,你看字体大小没有没有改变。这些程序是我在一个工程正在使用的源代码。
      

  5.   

    HFONT hFont = (HFONT) ::GetStockObject(DEFAULT_GUI_FONT);
    LOGFONT lf;
    ::GetObject(hFont, sizeof(LOGFONT), &lf);CFont DataFont;
    DataFont.CreateFontIndirect(&lf); //通常窗口正文字体lf.lfWeight = 700;
    CFont HeadFont;
    HeadFont.CreateFontIndirect(&lf); //加粗字体lf.lfHeight = -19;
    CFont TitleFont;
    TitleFont.CreateFontIndirect(&lf); //标题字体
    SelectObject(hdcprint,&lf); 
    然后textout();
    仍然没有变化??????急!!!!!!!!
      

  6.   

    CFont TitleFont;
    TitleFont.CreateFont(-MulDiv(24/*字体大小*/,memDC.GetDeviceCaps(LOGPIXELSY),72),
    0,0,0,FW_HEAVY,0,0,0,GB2312_CHARSET,
    OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
    VARIABLE_PITCH|FF_SWISS,_T("黑体"));
    memDC.SelectObject(&ThemeFont);
    memDC.Textout(……);
    这样一定OK
      

  7.   

    SelectObject(hdcprint,&lf);你这是在干什么?应该是:
    SelectObject(hdcprint,DataFont.GetSafeHandle());
    SelectObject(hdcprint,HeadFont.GetSafeHandle());
    SelectObject(hdcprint,TitleFont.GetSafeHandle());