WinXP環境のエディットコントロールについて

[戻る]
nagashima 2002/07/16(火) 16:37:14
nagashimaといいます。
Win2000, VC++6.0, MFCにて開発しています。
エディットコントロールについての質問です。WindowsXPではエディットコントロールの
SetLimitTextで指定した文字制限がバイト数ではなく、文字数で制限されてしまいます。
他のOSと同じようにバイト数制限するにはどうしたらよいのでしょうか?
どなたかご教授願います。

クラフトマン 2002/07/16(火) 17:56:39
>エディットコントロールについての質問です。WindowsXPではエディットコントロールの
>SetLimitTextで指定した文字制限がバイト数ではなく、文字数で制限されてしまいます。

EM_LIMITTEXTの説明を見ると、
>The text limit is the maximum amount of text, in TCHARs
とあるので、指定はTCHAR単位なのでは?
で、TCHARは、UNICODEかどうかでサイズが変わるので、それを考慮して、
  指定したいバイト数 / sizeof(TCHAR)
で求めた値を指定すればよいと思います。

? 2002/07/16(火) 18:23:02
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200207/02070028.txt 
は?
解決したの?

dairygoods 2002/07/16(火) 18:39:23
>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

クラフトマン 2002/07/16(火) 20:15:41
>XPにて仕様変更されたようです。

そうだったのですか。
では、私の回答は的外れでしたね。

古いスレッドには追加発言できません。