- 締切済み
スピンボタンのSetRangeはなぜあるのか
MFCでスピンボタンの上限下限をセットするメソッドに SetRangeとSetRange32があります。 1.SetRange32で事足りるはずなのにどうして2つあるのでしょう もともとSetRangeしかなかったのが増えたということでしょうか? 2.SetRangeで書かれているプログラムをSetRange32に変えると何か不都合が起きることが考えられますか。 3.SetRangeで範囲設定しないとスピンボタンの上矢印で値が減少し、下矢印で値が増加するという動作になります。これは仕様らしいですが、なぜこのような仕様になっているのでしょう。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス >1.SetRange32で事足りるはずなのにどうして2つあるのでしょう >もともとSetRangeしかなかったのが増えたということでしょうか? その通りです。 なお、MFC の SetRange と SetRange32 は UDM_SETRANGE と UDM_SETRANGE32 の2つの メッセージを SendMessage などで操作するためのメンバ関数です。 UDM_SETRANGE メッセージは Windows NT 3.51、Windows 95 以降 UDM_SETRANGE32 メッセージは Windows 2000、Windows NT 4.0、Windows 98、Windows 95 以降 となっています。詳しくは MSDN をどうぞ。 http://msdn.microsoft.com/en-us/library/bb759963(VS.85).aspx→『UDM_SETRANGE』 http://msdn.microsoft.com/en-us/library/bb759968(VS.85).aspx→『UDM_SETRANGE32』 >2.SetRangeで書かれているプログラムをSetRange32に変えると何か不都合が起きることが考えられますか。 特に不具合はありません。 ただし逆は問題が起きるかもしれません。(SetRange32→SetRange) これは SetRange の方が設定できる範囲が狭いからです。 SetRange32 が広いので狭い範囲にすると問題が起こるのです。 実際にはあまり広い範囲を設定していなければ相互変換可能。 >3.SetRangeで範囲設定しないとスピンボタンの上矢印で値が減少し、下矢印で値が増加するという動作になります。 おそらく仕様でしょう。 理由は分かりませんが以前に範囲設定しない場合と設定した場合で上下の矢印の動作が 異なるのに気づきました。