如何在WTL和MFC中使用duilib及如何静态使用duilib库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在WTL和MFC中使用duilib及如何静态使用duilib库相关的知识,希望对你有一定的参考价值。

参考技术A 可以直接在网上搜,有好多例子。

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

【中文标题】如何在 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 字符没有这样的限制。

【讨论】:

以上是关于如何在WTL和MFC中使用duilib及如何静态使用duilib库的主要内容,如果未能解决你的问题,请参考以下文章

在VC6.0中能不能使用Duilib界面库呢?

模仿qq界面实现(WTL)

duilib入门简明教程 -- VS环境配置 Alberl

如何拖动用duilib创建出来的窗口

WTL强制资源从非mfc应用程序中的dll加载的方式? (我们使用的是 WTL/ATL,不是直接的 win32)

[WTL/ATL]_[初级]_[如何设置CEdit的文本框背景色和文字颜色]