コントロールで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パラメーターの値のいずれか小さい方です。
2番目の段落で-1ではなく0xFFFFFFFFを意味していると思います...