如何防止静态控件中的文本被剪切?

Posted

技术标签:

【中文标题】如何防止静态控件中的文本被剪切?【英文标题】:How to prevent the text within the static control from getting clipped? 【发布时间】:2015-02-23 14:19:32 【问题描述】:

我有一个静态控件,我在其中设置一些文本。当我尝试在静态控件中设置冗长的文本时,文本会被剪裁。

谁能告诉我,我怎样才能防止文本被剪辑。

【问题讨论】:

您希望它做什么?裹?显示省略号?展开静态? @Alex K 静态控件的宽度是固定的,我不能增加静态控件的宽度,因为我没有空间来增加对话框,但可以增加高度。在静态控件中输入的文本限制为 255 个字符。我希望整个文本在静态控件中可见而不会被剪裁。 【参考方案1】:

问题是静态控件总是会剪切一个比控件宽度长的单词。如果你使用 SS_LEFT 样式的话被换行到下一行。所以更高的控制会有所帮助(我可以在 cmets 中读到这是可能的)。

但样式必须是 SSLEFT 而不是 SS_LEFTNOWRAP!

另一种解决方案是使用不带边框的只读编辑控件。在这种情况下,您可以在编辑控件内滚动,因为可以为其提供焦点。您还可以使用垂直或水平滚动条。

只要您不使用 WS_TABSTOP,您就不会发现没有边框的只读编辑控件和静态控件之间没有真正的区别。除了可以用鼠标激活编辑控件。

【讨论】:

【参考方案2】:

使静态文本控件大于您放入其中的文本。窗口在其客户端和非客户端空间中绘制。它剪辑到它的窗口。

【讨论】:

我有一个固定长度的静态控件,我不能增加静态控件的大小,但是我希望所有的文本都显示在静态控件中。宽度是固定的,高度可以是多种多样。 您将无法获取静态文本控件边界之外的文本但是,如果您想要可滚动的内容,我只需将静态控件替换为只读编辑控件即可。 【参考方案3】:

如果您担心对话框或表单上的空间,或者语言翻译可能是一个问题,那么您应该考虑使用CStatic tool tip。使用工具提示将允许您保持控件的当前大小并提供一种机制来显示其全文。当用户将鼠标悬停在 CStatic 上时,会弹出一个工具提示以显示整个文本。这是我不得不用来平衡 UI 设计和对话框空间的折衷方案。

【讨论】:

以上是关于如何防止静态控件中的文本被剪切?的主要内容,如果未能解决你的问题,请参考以下文章

在静态文本控件上设置图标

如何防止 Nivo 刻度轴文本中的文本截断(条形图)

MFC静态文本控件怎么设置字体

如何限制或剪切 SVG 中的文本?

使用 NetSuite 高级 pdf 打印时,长文本被剪切

易语言如何取剪切板中的部分文本?