如何在 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 静态控件中增加字符限制的主要内容,如果未能解决你的问题,请参考以下文章