Drawtext的使用问题,还是BUG! ( 积分: 100 )

  • 主题发起人 主题发起人 pokly
  • 开始时间 开始时间
P

pokly

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br> &nbsp;S: String;<br> &nbsp;ARect: TRect;<br>begin<br> &nbsp;S := '建议围绕一个议题提问以便专家回答您';<br> &nbsp;ARect := Rect(10, 10, 110, 110);<br> &nbsp;DrawText(Canvas.Handle, PChar(S), Length(S), ARect,<br> &nbsp; &nbsp;DT_EXPANDTABS or DT_WORDBREAK or DT_LEFT);<br>end;<br>上述能实现换行.<br>如果用S:='1231321654678971316546656';<br>就不能换行了.是为什么?用法有错吗?
 
var<br> &nbsp;S: String;<br> &nbsp;ARect: TRect;<br>begin<br> &nbsp;S := '建议围绕一个议题提问以便专家回答您';<br> &nbsp;ARect := Rect(10, 10, 110, 110);<br> &nbsp;DrawText(Canvas.Handle, PChar(S), Length(S), ARect,<br> &nbsp; &nbsp;DT_EXPANDTABS or DT_WORDBREAK or DT_LEFT);<br>end;<br>上述能实现换行.<br>如果用S:='1231321654678971316546656';<br>就不能换行了.是为什么?用法有错吗?
 
路过的顶一顶呀!
 
是大家没用过,还是认为太简单了.说话塞!
 
你理解的不对<br>DT_WORDBREAK Breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-linefeed sequence also breaks the line.<br>这个是遇到单词才换行<br>你在数字中加个空格试试,准换~
 
对头,但我怎么可以让数字换行(不动原字符串)?
 
或者可不可以把其转换成WORD.
 
DrawText(Canvas.Handle, PChar(S), Length(S), ARect,<br> &nbsp; &nbsp;DT_EXPANDTABS or DT_WORDBREAK or DT_LEFT or DT_EDITCONTROL);<br><br>加上DT_EDITCONTROL就行了
 
DT_WORDBREAK 断开字。当一行中的字符将会延伸到由lpRect指定的矩形的边框时,此行自动地在字之间断开。一个回车一换行也能使行折断。
 
谢谢.100分
 
再次谢谢!
 
后退
顶部