スピンボタンの変化量を設定するには?

[戻る]
kazu [E-Mail] 2000/11/14(火) 17:53:00
エディットボックスにアタッチさせたスピンボタンコントロールがあります。
スピンボタンの変化量をSetAccel()で設定したのですが、設定値の倍数しか
受け付けてくれません。例えばエディットボックス内の値が3とします。
変化量を2と設定し、スピンボタンを押したら5になって欲しいのですが、
結果は6です。これって何とかなりませんか?
対応策として、UDN_DELTAPOSイベントのメソッド内で処理するのも一手ですが、
事情があってそれはできません。どうか宜しくお願い致します。

2000/11/15(水) 10:34:57
SetAccelで変化量は設定できるはずですよ。
以下でテストしてみましたが、きっちり15づつ変化しますがどうでしょう。

UDACCEL    stUD;
stUD.nSec = 1;
stUD.nInc = 15;  //  ここで変化量設定

m_spin.SetRange32(0, 1000);
m_spin.SetAccel(1, &stUD);

kazu [E-Mail] 2000/11/15(水) 13:56:35
重さん、発言ありがとうございました。

説明不足だったかもしれません。
重さんの書いた処理は、以前私も試してみたのです。
setAccelで変化量を設定すると、確かに変化量のインクリメントはするのですが、
例えば、UDACCELのnIncを15に設定して、スピンボタンを押した場合・・・
 ケース@ エディットボックス値が0の場合 -----> 15に変化
 ケースA エディットボックス値が5の場合 -----> 30に変化
 ケースB エディットボックス値が15の場合 -----> 45に変化

分かりますか?つまりSetAccelで変化量を設定するとエディットボックスには
その設定値の倍数しか受け付けなくなるのです。
(エディットボックスへの直接入力の場合は別ですが・・)
私も色々考えてみたのですが、やはりUDN_DELTAPOSイベントメソッドで何とか
するしかないようですね。重さん、ありがとうございました

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