转载请说明原出处,谢谢~~:

今天有朋友反映CTextUI控件无法设置宽度,于是修复了这个bug,顺便给Text控件增加了一个自动计算宽度的属性,描述如下

<Attribute name="autocalcwidth" default="false" type="INT" comment="是否自动计算宽度"/> 

bug出现在EstimeteSize函数,修复后的主要代码如下:

 SIZE CTextUI::EstimateSize(SIZE szAvailable){RECT rcText = { 0, 0, m_bAutoCalcWidth ? szAvailable.cx : m_cxyFixed.cx, m_cxyFixed.cy == 0 ? 9999 : m_cxyFixed.cy};if( m_bShowHtml ) {   int nLinks = 0;CRenderEngine::DrawHtmlText(m_pManager->GetPaintDC(), m_pManager, rcText, m_sText, m_dwTextColor, NULL, NULL, nLinks, DT_CALCRECT | m_uTextStyle);}else {CRenderEngine::DrawText(m_pManager->GetPaintDC(), m_pManager, rcText, m_sText, m_dwTextColor, m_iFont, DT_CALCRECT | m_uTextStyle);}SIZE szXY = {rcText.right - rcText.left + m_rcTextPadding.left + m_rcTextPadding.right,rcText.bottom - rcText.top + m_rcTextPadding.top + m_rcTextPadding.bottom};if (m_bAutoCalcWidth){m_cxyFixed.cx = szXY.cx;}if( m_cxyFixed.cy == 0 ) m_cxyFixed.cy = szXY.cy;return CControlUI::EstimateSize(szAvailable);}

其中m_bAutoCalcWidth是新增的属性,新增的属性代码很简单,我就不贴了。

修复后的完整代码我已经提交到自己的Duilib库。

我的Duilib库代码下载地址:点击打开链接

duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性相关推荐

  1. duilib修复ActiveXUI控件bug,以支持flash透明动态背景

    转载请说明原出处,谢谢~~ 昨天在QQ控件里和同学说起QQ2013登陆窗体的开发,从界面角度考虑,单单一个登陆界面是很容易做出来的.腾讯公司为了防止各种盗号行为可谓煞费苦心,QQ2013采用了动态背景 ...

  2. 仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)...

    转载请说明原出处,谢谢~~ 整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果 ...

  3. [译][Tkinter 教程10] Text 控件

    已获原作者授权. 原系列地址: Python Tkinter 简介及简例 Text 控件用来显示多行文本. Tkinter 的 Text 控件很强大, 很灵活, 可以实现很多功能. 虽然这个控件的主要 ...

  4. 修复duilib库UISlider控件的4个bug

    转载级请注明原出处,谢谢~· 昨天封装好一个音频类,我在为dulib做音频播放demo时发现了一些问题,由CSliderUI控件导致的,进而发现了这个控件的好几样不足,他无法满 足我们做一个播放器的进 ...

  5. Duilib教程-控件练习

    一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...

  6. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

  7. Flutter 系列文章:Flutter Text 控件介绍

    flutter Text 控件介绍 一.使用方法 构造方法 设置普通的text Text("") Text(this.data, {Key key,this.style,this. ...

  8. 改进duilib的richedit控件的部分功能

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41208207 如果要使用透明异形窗体功能,首先要改进duilib库让他本 ...

  9. matlab axes控件,PushButton控件,Axes控件,Text控件以及imshow和image函数

    -- PushButton控件 -- PushButton控件是按钮的意思,它就相当于键盘上的每个键一样,按一下输入一个信号,在GUI中就是按一下执行该控件的回调函数. PushButton的属性: ...

最新文章

  1. 正确修改MySQL最大连接数的三种好用方案
  2. CDN 监控系统(二)
  3. Cucumber入门之_World
  4. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)
  5. 史上最全PostgreSQL体系结构
  6. 凭什么程序员工资那么高?
  7. 5G 协议新漏洞可追踪位置信息
  8. Introducing and integrating Hibernate(Chapter 2 of Hibernate In Action)
  9. android iptables清空,android中的iptables错误:iptables-save和iptables-restore无法正常工作...
  10. 如何获取win10当前桌面背景壁纸
  11. PS 在线 圆角 矩形 图片 裁剪 生成
  12. 原始套接字 发送 TCP SYN 包
  13. 99行Swift完成Markdown在线编辑服务器
  14. 雷视一体机助力智慧高速路侧感知建设
  15. .net获取mysql数据_asp.net用DataSet从数据库中获取数据
  16. Compose 实现页面侧滑返回
  17. python下载音乐代码_基于Python实现下载网易音乐代码实例
  18. Java读文件和写文件
  19. 如何选择合适的网络自动化工具
  20. 本科计算机 出国可以学营养学吗,美国营养学专业哪些大学比较好 十所美国营养...

热门文章

  1. Permission denied error: unable to index file .vs/Trip2015/v15/Server/sqlite3/db.lock fatal: adding
  2. python英语字典程序修改_详解如何修改python中字典的键和值
  3. android 资源匹配,Android资源匹配过程(二)
  4. Harbor仓库的管理
  5. asyncdata连接php,如何使用Nuxt和asyncData观察路由更改
  6. 全国计算机二级公共基础知识练习,2020年全国计算机二级公共基础知识练习题(7)...
  7. HTTP协议 TCP协议简要
  8. 5G通信3大场景 来源:elecfans
  9. 小程序页面遮罩且不能滚动 + 内容居中显示
  10. idea远程debug调试阿里云ECS