如何在 MFC 静态控件中增加字符限制

Posted

技术标签:

【中文标题】如何在 MFC 静态控件中增加字符限制【英文标题】:How to increase character limit in MFC static control 【发布时间】:2011-05-04 10:41:37 【问题描述】:

我们在对话框中使用 MFC 静态控件向用户显示一些内容。静态控件和对话框都在资源文件 (.rc) 中定义为 LTEXT 和 DIALOG。问题是如果内容超过 256 个字符,它会被截断。有谁知道如何增加这个限制。控件和对话框都是老式的。

【问题讨论】:

【参考方案1】:

您可以为这个问题投票here。不要指望奇迹,资源编译器是新石器时代的。您必须通过使用多个静态控件或在运行时在 WM_INITDIALOG 消息处理程序中设置文本来解决它。不要高估用户的耐心。

【讨论】:

我刚刚在将旧的 BC5 应用程序迁移到 Visual Studio 2017 时遇到了这个问题。显然它还没有解决。【参考方案2】:

静态控件显示文本但没有用户交互;它们没有滚动条,并且会截断文本以适应控件的边界。如果您的问题是文本填充控件并被截断,请考虑切换到只读编辑控件。

如果控件只接受 256 个字符,即使还有更多空间,我不知道为什么会这样。 MSDN 没有提到对控件文本大小的限制。

【讨论】:

是后一种情况,即控制只接受 256 个字符。我很困惑。 奇数。如果调用 GetWindowTextLength() 会得到什么? 这不是 STATIC 窗口类的限制。我已经创建了一个带有大型静态控件的快速 MFC 对话框应用程序,并用文本填充它。我可以在 306 * 139 单位控件中看到 1377 个字符。【参考方案3】:

据我了解,编译器似乎对可编译模块中的内联字符串有限制。如果您使用如此大的文本作为标题,为什么不介意创建一个字符串表?对于静态控件,256K 字符没有这样的限制。

【讨论】:

以上是关于如何在 MFC 静态控件中增加字符限制的主要内容,如果未能解决你的问题,请参考以下文章

限制列表控件 MFC 中的条目数

MFC中如何让静态控件响应鼠标移动的消息?

如何增加mfc中组合框控件的高度?

如何将自旋控件关联到 MFC 中的不同编辑框

在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗

如何改变mfc对话框中的控件中的字体大小