您可以通过在控件上调用CEdit::GetLimitText()来找出控件的最大值。这将返回字符数据的最大大小(以字节为单位)。您可以使用CEdit::SetLimitText()函数更改最大大小。
SetLimitText() 函数相当于发送一个EM_SETLIMITTEXT消息。该消息的文档提供了可以使用的最大大小,但由于这些是 MSDN 链接,明天可能会被破坏,我将复制相关信息:)
UINT 参数解释为:
用户可以输入的最大 TCHAR 数。对于 ANSI 文本,这是字节数;对于 Unicode 文本,这是字符数。此数字不包括终止空字符。丰富的编辑控件:如果此参数为零,则文本长度设置为 64,000 个字符。
Windows NT/2000/XP 上的编辑控件:如果此参数为零,则文本长度设置为单行编辑控件的 0x7FFFFFFE 字符或多行编辑控件的 –1。
Windows 95/98/Me 上的编辑控件:如果此参数为零,则文本长度设置为单行编辑控件的 0x7FFE 字符或多行编辑控件的 0xFFFF。
此外,从备注部分:
在调用 EM_SETLIMITTEXT 之前,用户可以在编辑控件中输入的文本量的默认限制是 32,767 个字符。
Windows NT/2000/XP 上的编辑控件:对于单行编辑控件,文本限制为 0x7FFFFFFE 字节或 wParam 参数的值,以较小者为准。对于多行编辑控件,此值为 –1 字节或 wParam 参数的值,以较小者为准。
Windows 95/98/Me 上的编辑控件:对于单行编辑控件,文本限制为 0x7FFE 字节或 wParam 参数的值,以较小者为准。对于多行编辑控件,此值是 0xFFFF 字节或 wParam 参数的值,以较小者为准。
我认为他们在第二段中的意思是 0xFFFFFFFF 而不是 -1 ......