日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載請(qǐng)說(shuō)明原出處,謝謝~~:


? ? ? 今天有朋友反映CTextUI控件無(wú)法設(shè)置寬度,于是修復(fù)了這個(gè)bug,順便給Text控件增加了一個(gè)自動(dòng)計(jì)算寬度的屬性,描述如下


<Attribute name="autocalcwidth" default="false" type="INT" comment="是否自動(dòng)計(jì)算寬度"/>
? ? ? bug出現(xiàn)在EstimeteSize函數(shù),修復(fù)后的主要代碼如下:


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是新增的屬性,新增的屬性代碼很簡(jiǎn)單,我就不貼了。

? ? ? 修復(fù)后的完整代碼我已經(jīng)提交到自己的Duilib庫(kù)。

? ? ? 我的Duilib庫(kù)代碼下載地址:點(diǎn)擊打開(kāi)鏈接


總結(jié)

以上是生活随笔為你收集整理的duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。