nagashimaといいます。
Win2000, VC++6.0, MFCにて開発しています。
エディットコントロールについての質問です。WindowsXPではエディットコントロールの
SetLimitTextで指定した文字制限がバイト数ではなく、文字数で制限されてしまいます。
他のOSと同じようにバイト数制限するにはどうしたらよいのでしょうか?
どなたかご教授願います。
>エディットコントロールについての質問です。WindowsXPではエディットコントロールの
>SetLimitTextで指定した文字制限がバイト数ではなく、文字数で制限されてしまいます。
EM_LIMITTEXTの説明を見ると、
>The text limit is the maximum amount of text, in TCHARs
とあるので、指定はTCHAR単位なのでは?
で、TCHARは、UNICODEかどうかでサイズが変わるので、それを考慮して、
指定したいバイト数 / sizeof(TCHAR)
で求めた値を指定すればよいと思います。
>EM_LIMITTEXTの説明を見ると、
>>The text limit is the maximum amount of text, in TCHARs
>とあるので、指定はTCHAR単位なのでは?
XPにて仕様変更されたようです。
「Common Control 6.0 の EM_LIMITTEXT による入力制限」
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp
%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp418%2F0%2F99%2Easp&LN=JA
>XPにて仕様変更されたようです。
そうだったのですか。
では、私の回答は的外れでしたね。