CFont font;
CFont * pOldFont;
LOGFONT MyFont;memset(&MyFont,0,sizeof(LOGFONT));
MyFont.lfHeight = 23;
MyFont.lfWidth = 16;
MyFont.lfWeight = FW_NORMAL;
MyFont.lfCharSet = GB2312_CHARSET;
MyFont.lfQuality = DEFAULT_QUALITY;
wcscpy(MyFont.lfFaceName,L"微软雅黑");
font.CreateFontIndirect(&MyFont);
dc.SelectObject(font);
CString str(L"sdfsdfsdfsdffdfdsffdsfsdf进程,如果不dfsdfsdfdfsdfdsfsdffdsf希望运行这gfgdfgdfg个程序,可以清理");
Gdiplus::Graphics gs(dc.m_hDC);
Gdiplus::RectF stringRect;
Gdiplus::Font myFont(L"微软雅黑",12,0,Gdiplus::UnitPixel);
Gdiplus::RectF layoutRect(0,0,206-24,200);
Gdiplus::StringFormat format;
format.SetAlignment((Gdiplus::StringAlignment)0);
format.SetLineAlignment((Gdiplus::StringAlignment)0 );
format.SetTrimming( Gdiplus::StringTrimmingEllipsisCharacter );
gs.SetSmoothingMode( Gdiplus::SmoothingModeHighQuality );
gs.SetTextRenderingHint( (Gdiplus::TextRenderingHint)Gdiplus::TextRenderingHintClearTypeGridFit );
gs.MeasureString( (LPCTSTR)str,str.GetLength(), &myFont, layoutRect, &format, &stringRect );
Gdiplus::RectF outRect(230,100,206-24,200);
Gdiplus::Color color(255,0,0,0);
Gdiplus::Color colorR(255,255,0,0);
Gdiplus::SolidBrush brush(color);
Gdiplus::SolidBrush brushR(colorR);
gs.FillRectangle(&brushR,230.0,100.0,stringRect.Width,stringRect.Height);
gs.DrawString( str, str.GetLength(), &myFont, outRect, &format, &brush );
方法二:
RECT rc = {0,0,100,400};
dc.SetBkMode( TRANSPARENT );
dc.DrawText( L"四点多法斯蒂芬撒地方键啊", &rc, DT_CALCRECT|DT_LEFT|DT_TOP|DT_WORDBREAK );
SIZE size;
dc.FillRect( CRect(100,100,100+rc.right-rc.left,100+rc.bottom-rc.top), &CBrush(RGB(255,0,0)));
dc.DrawText( L"四点多法斯蒂芬撒地方键啊", CRect(100,100,200,500), DT_LEFT|DT_TOP|DT_WORDBREAK);