Delphi TStatusBar将文本截断为大约140个字符

Delphi TStatusBar将文本截断为大约140个字符,delphi,Delphi,我有一个TStatusBar,它包含两个状态面板。第一个大约100像素长。第二个填充状态栏宽度的其余部分。如果我试图在第二个面板中显示长度超过140个字符的字符串,它会将它们截断为该值 有没有办法克服这个错误 D7,赢XP 编辑:是126个字符。@table,组件,使用Windows消息绘制文本,这在WinXP中仅限于绘制127个字符 lParam Pointer to a null-terminated string that specifies the text to set. 如果wPa

我有一个TStatusBar,它包含两个状态面板。第一个大约100像素长。第二个填充状态栏宽度的其余部分。如果我试图在第二个面板中显示长度超过140个字符的字符串,它会将它们截断为该值

有没有办法克服这个错误

D7,赢XP

编辑:是126个字符。

@table,组件,使用Windows消息绘制文本,这在WinXP中仅限于绘制127个字符

lParam

Pointer to a null-terminated string that specifies the text to set.
如果wParam是SBT_OWNERDRAW,则 参数表示32位的数据。 父窗口必须解释 输入数据并绘制文本 接收WM_DRAWITEM消息。在里面 Windows XP及更早版本中的文本 每部分限制为127 人物。这一限制已被取消 已在Windows Vista中删除

作为解决方法,您可以使用OnDrawPanel事件自己绘制状态栏的文本

请参见此示例,在TStatusBar的第二个面板中绘制200个字符的文本,不要忘记将面板的属性样式设置为psOwnerDraw

@该组件使用Windows消息绘制文本,这在WinXP中仅限于绘制127个字符

lParam

Pointer to a null-terminated string that specifies the text to set.
如果wParam是SBT_OWNERDRAW,则 参数表示32位的数据。 父窗口必须解释 输入数据并绘制文本 接收WM_DRAWITEM消息。在里面 Windows XP及更早版本中的文本 每部分限制为127 人物。这一限制已被取消 已在Windows Vista中删除

作为解决方法,您可以使用OnDrawPanel事件自己绘制状态栏的文本

请参见此示例,在TStatusBar的第二个面板中绘制200个字符的文本,不要忘记将面板的属性样式设置为psOwnerDraw


这在Windows7下运行的Delphi2007中不是问题。请查看VCL源代码。它会告诉你为什么会这样。140个字符?也许是推特启动的?他,他…这不是在Windows7下运行的Delphi2007中的问题。看看VCL源代码。它会告诉你为什么会这样。140个字符?也许是推特启动的?他,他。。。