wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了windows C++如何根据文本字符串计算其绘制需占用宽度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

分析 计算某串文本在绘制UI上需要占用的宽度,需要以下几个要素: 字符串本身 所使用的字体 字体会影响所绘制的文字的宽度——那是理所当然的 所使用的GDI或GDI+对象 方法 GDI ::SELEctObject(hDC, hFont); //第四个参数:指向SIZE结构的指针,该结构中字符串的尺寸将被返回。 ::GetTextExtentPoint32(hDC, str, StrLen(str)

分析@H_404_7@

计算某串文本在绘制UI上需要占用的宽度,需要以下几个要素:

  • 字符串本身
  • 所使用的字体
    字体会影响所绘制的文字的宽度——那是理所当然
  • 所使用的GDI或GDI+对象

方法@H_404_7@

GDI@H_618_32@
::SELEctObject(hDC,hFont);
//第四个参数:指向SIZE结构的指针,该结构中字符串的尺寸将被返回。
::GetTextExtentPoint32(hDC,str,StrLen(str),&sizeText);

GDI+@H_618_32@
  • 比GDI复杂,需要使用到GDI+对象的API@H_534_39@measureString
Gdiplus::rectF rc1(0,5000,2000);
Gdiplus::rectF rc2(0,0);
g.MeasureString(str,-1,pFont,rc1,pStrFormat,&rc2);
return rc2.Width;
  • 其中参数4是Gdiplus::stringFormat,类似的赋值方式如下:
Gdiplus::stringFormat* pStrFormat = new Gdiplus::stringFormat();
        pStrFormat->SetAlignment(enHAlign);
        pStrFormat->SetLineAlignment(enVAlign);
        If_Do(nFormat != 0,pStrFormat->SetFormatFlags(nFormat));

大佬总结

以上是大佬教程为你收集整理的windows C++如何根据文本字符串计算其绘制需占用宽度全部内容,希望文章能够帮你解决windows C++如何根据文本字符串计算其绘制需占用宽度所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。