duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
来源:互联网 发布:手机淘宝购物比价软件 编辑:程序博客网 时间:2024/05/01 00:43
转载请说明原出处,谢谢~~:
今天有朋友反映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库代码下载地址:点击打开链接
1 0
- duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
- duilib relativepos属性导致控件错误的bug修复
- duilib 给List表头增加百分比控制宽度的功能
- 设置superfish控件的宽度
- 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
- duilib 修复 容器控件 rightbordersize和bottombordersize属性显示错误的bug
- 修复duilib库UISlider控件的4个bug
- <span> 无法设置宽度的完美解决方案!
- tabel根据设置的宽度自动换行
- 设置html 输入框控件text的自定义长度宽度和字体的大小
- 设置Combo box控件的显示宽度
- 设置控件/对话框的宽度和高度
- duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
- duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
- 自定义控件AutoScaleMode为Font造成宽度增加的问题
- 设置span的宽度
- easyui-combobox 取值问题
- Word表格如何设置上下居中对齐、左右居中对齐
- 每日学习心得:$.extend()方法和(function($){...})(jQuery)详解
- 浅析网站运营的塑造稀缺性策略
- Android 音量键的监听
- duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
- 我的Android案例—HelloAndroid
- 如何判断QML应用被推送到后台和前台
- ios下使用RSA算法加密与java后台解密配合demo
- Common下MadieHelper.cs
- 通过API调用文件的属性对话框
- IOS8 UITableViewCell.detailTextLabel不显示解决方法
- windows平台上的PHP运行在IIS,Apache,Nginx的性能和速度测试日志
- 第七章 查找技术