首页 > 其他分享 >GDI+字符串测量

GDI+字符串测量

时间:2023-12-04 17:33:58浏览次数:24  
标签:string layoutRect boundRect 测量 graphics 字符串 GDI strF

  关于GDI+对字符串的测量官方文档中给出5种重载函数,5种重载分为两类,两类的分类方式是按照字符串以何种方式输出定义。下面文字给出官方对两类定义的描述:

第一类:The Graphics::MeasureString method measures the extent of the string in the specified font,format, and layout rectangle.

第二类:The Graphics::MeasureString method measures the extent of the string in the specified font and layout rectangle.

  通过上述英文描述可看出,两类的区分是按输出格式定义。以下代码展示在字体大小不同的情况下的输出效果:

    WCHAR string[] = L"上善若水";
    Gdiplus::Font ft(L"KaiTi", 20/*50*//*70*/);
    RectF layoutRect(10.0f, 10.0f, 200.0f, 330.0f);
    StringFormat strF;
    strF.SetAlignment(StringAlignmentFar);
    RectF boundRect;
    graphics.DrawRectangle(&Pen(Color(255, 0, 0)), layoutRect);
    graphics.MeasureString(string, 4, &ft, layoutRect, &strF, &boundRect);
    graphics.DrawString(string, 4, &ft, boundRect, &strF, &SolidBrush(Color(0, 255, 0)));
    graphics.DrawRectangle(&Pen(Color(0, 0, 255)), boundRect);

字体大小为20\50\70效果如下:

 通过效果显示可看出,字符串测量仅限定在制定的区域中,当字体超出范围将不再显示。

 

标签:string,layoutRect,boundRect,测量,graphics,字符串,GDI,strF
From: https://www.cnblogs.com/missyou0813/p/17875502.html

相关文章

  • [LeetCode Hot 100] LeetCode438. 找到字符串中所有字母异位词
    题目描述思路:滑动窗口模板需要维护的变量://1.用于存放结果List<Integer>res=newArrayList<>();//2.定义需要维护的变量:根据题意可知是一个哈希表Map<Character,Integer>map=newHashMap<>();Map<Character,Integer>hashmap_p=newHashMap<>();for(c......
  • LeetCode567. 字符串的排列
    题目描述思路:滑动窗口模板定义需要维护的变量Map<Character,Integer>map=newHashMap<>();Map<Character,Integer>map_s1=newHashMap<>();for(charc:s1.toCharArray()){ map_s1.put(c,map_s1.getOrDefault(c,0)+1);}根据题意可知:窗口为固定大小所......
  • AcWing 835. Trie字符串统计
    题面:维护一个字符串集合,支持两种操作:①Ix向集合中插入一个字符串x;②Qx询问一个字符串在集合中出现了多少次。共有\(N\)个操作,所有输入的字符串总长度不超过\(105\),字符串仅包含小写英文字母。原题链接:835.Trie字符串统计-AcWingTrie字典树[1]//输入:Idog......
  • iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用
    ​ 在网上搜“代码混淆”关键词,可以看到n多教程。包括本篇博客,大部分重要内容也是从网上各位大神的博客里面看到然后摘取和总结出来的。虽然网上都有,但是对于我个人来说,很难找到一篇博客概括完全的,所以还是总结一下,也算是学习的纪录。首先看看代码混淆是什么。总的来说,代码混......
  • AcWing 831. KMP字符串
    题面:给定一个字符串S,以及一个模式串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串P在字符串S中多次作为子串出现。求出模式串P在字符串S中所有出现的位置的起始下标。原题链接:831.KMP字符串-AcWing核心:next数组-最长相等前后缀next[i]存储......
  • 基础-字符串的常用方法
    1、字符串的大小写转换.supper()---小写转换成大写.lower()---转换成小写.title()#单词首字母大写示例代码s="python"s1=s.upper();print(s1)#PYTHONs="PYTHON"s1=s.upper();print(s1)#pythons="ihaveadream"s1=s.title()#单词首字母大写print(s......
  • 基础-字符串
    1、字符串格式问题1#1、字符串格式问题2#我叫xx,我叫xxx3name=input("请出入名称")4adress=input("请出入地址")5age=int(input("请出年龄"))6hobby=input("请出爱好")8#%s字符串占位9#%d占位整数11#方法一12s1="我叫%s,我住在%s,我......
  • 【pwn】puts or system? --格式化字符串漏洞泄露libc基址
    还是先看一下保护情况开了canary,接着看主函数逻辑看到这里的代码逻辑,我一开始是想通过printf泄露出canary的值,然后再用ret2libc来打,但是我发现这个libc不好泄露,一般的泄露的思路都是构造ROP,通过puts函数泄露出puts的got表内容,但是我在寻找rdi这个gadget的时候,是找不到的这也......
  • ABC 331 F - Palindrome Query(字符串哈希,树状数组)
    字符串哈希[OI-Wiki](字符串哈希-OIWiki(oi-wiki.org))分为两种哈希方式:以左为高位和以右为高位如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即\[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\timesbase^{r-l+1}\]但是如果有修改操作,需要将每一位的Hash值存......
  • 5G城市微蜂窝场景的信道测量与建模
    https://www.mdpi.com/1424-8220/16/8/1330https://www.mdpi.com/1424-8220/16/8/1330https://www.mdpi.com/1424-8220/16/8/13305G城市微蜂窝场景的信道测量与建模作者:MichaelPeter、RichardJ.Weiler、BarışGöktepe、WilhelmKeusgen和KeiSakaguchi传感器2016,16(8),1330;https......