主要是因为DT_WORDBREAK
只能截断单词。例如如果输入一连串英文字符,那么它会当做一个单词来处理,而不会自动换行。而对于中文字符则可以。如果要对所有字符都可以像Edit控件中那样自动换行,那么可以使用DT_WORDBREAK | DT_EDITCONTROL
解决办法有2种:
一、duilib库修改
CTextUI类,有个 m_uTextStyle成员变量, 初始化改为 m_uTextStyle = DT_WORDBREAK | DT_EDITCONTROL 即可;
二、上层修改
CTextUI* pTxtContent = static_cast<CTextUI*>(m_uiPaintManager.FindControl(_T("Text_Content")));
//dwStyle = DT_WORDBREAK | DT_EDITCONTROL 纯字符自动换行,需加DT_EDITCONTROL
if (pTxtContent )
{
DWORD dwStyle = pTxtContent ->GetTextStyle();
pTxtContent ->SetTextStyle(dwStyle | DT_EDITCONTROL);
}
本文来自CSDN博客,转载请标明出处:
http://blog.csdn.net/wclaccp/article/details/51544071