duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
2015-01-05 11:01
411 查看
转载请说明原出处,谢谢~~:
今天有朋友反映CTextUI控件无法设置宽度,于是修复了这个bug,顺便给Text控件增加了一个自动计算宽度的属性,描述如下
bug出现在EstimeteSize函数,修复后的主要代码如下:
其中m_bAutoCalcWidth是新增的属性,新增的属性代码很简单,我就不贴了。
修复后的完整代码我已经提交到自己的Duilib库。
我的Duilib库代码下载地址:点击打开链接
今天有朋友反映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,增加自动加算宽度的属性
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- duilib relativepos属性导致控件错误的bug修复
- duilib 修复 容器控件 rightbordersize和bottombordersize属性显示错误的bug
- duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
- Delphi VCL 在TRichEdit控件中设置WordWrap属性后无法自动换行的问题
- duilib 增加gif控件(基于gdi+,可控制播放暂停,自动设置大小)
- duilib中CTextUI控件设置文字时不刷新显示的bug
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
- duilib relativepos属性导致控件错误的bug修复
- DuiDesigner控件Label无法设置文本对齐属性的BUG解决方案
- 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
- duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
- duilib 增加gif控件(基于gdi+,可控制播放暂停,自动设置大小)
- Android控件TextView中ellipsize属性(设置当文字长度超过textview宽度时的显示方式)
- 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)