客户端测量输出文章的宽高方案

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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值