CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 9 of 9

Threaded View

  1. #1
    Join Date
    May 2002
    Location
    France, Toulouse
    Posts
    156

    DrawText : Output letters overlaps

    Hi

    I try to draw a text using gdi function DrawText, the letters overlaps when the size of the font is too small (3 points)?

    Code:
    //FONT
    CFont font;
    LOGFONT lgFont;
    memset(&lgFont, 0, sizeof(LOGFONT));
    lgFont.lfCharSet = DEFAULT_CHARSET;
    lgFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
    lgFont.lfItalic = fontStyle & FontStyleItalic;//IsItalic(m_strFontStyle);
    lgFont.lfOrientation = 0;
    lgFont.lfStrikeOut = FALSE;
    lgFont.lfUnderline = FALSE;
    lgFont.lfOutPrecision = OUT_SCREEN_OUTLINE_PRECIS;
    lgFont.lfQuality = ANTIALIASED_QUALITY | PROOF_QUALITY;
    
    strcpy(lgFont.lfFaceName ,m_strFont);
    lgFont.lfHeight = -fFontSize;//MulDiv(fFontSize, pDC->GetDeviceCaps(LOGPIXELSY), 96);
    lgFont.lfWeight = (fontStyle & FontStyleBold)?FW_BOLD:FW_REGULAR;//GetBoldWeightNew(m_strFontStyle);
    lgFont.lfEscapement = 0;
    
    font.CreateFontIndirect(&lgFont);
    
    {
    	int nBkMode = emfDC.SetBkMode(TRANSPARENT);
    	int nGraphicMode = emfDC.SetGraphicsMode(GM_ADVANCED);
    	int nMapMode = emfDC.SetMapMode( MM_TEXT);
    	CFont* pOldFont = emfDC.SelectObject(&font);
    	emfDC.DrawTextEx(sText,rcDest,uFormat,NULL);
    
    	rcDest.OffsetRect(0,-nY);
    
    	emfDC.SetTextColor(oldColor);
    
    	emfDC.SelectObject(pOldFont);
    
    	nGraphicMode = emfDC.SetGraphicsMode(nGraphicMode);
    	nMapMode = emfDC.SetMapMode( nMapMode);
    	nBkMode = emfDC.SetBkMode(nBkMode);
    
    
    }
    I attached a jpeg showing the output.

    thank you
    Attached Images Attached Images

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured