エディットボックスにアタッチさせたスピンボタンコントロールがあります。
スピンボタンの変化量をSetAccel()で設定したのですが、設定値の倍数しか
受け付けてくれません。例えばエディットボックス内の値が3とします。
変化量を2と設定し、スピンボタンを押したら5になって欲しいのですが、
結果は6です。これって何とかなりませんか?
対応策として、UDN_DELTAPOSイベントのメソッド内で処理するのも一手ですが、
事情があってそれはできません。どうか宜しくお願い致します。
SetAccelで変化量は設定できるはずですよ。
以下でテストしてみましたが、きっちり15づつ変化しますがどうでしょう。
UDACCEL stUD;
stUD.nSec = 1;
stUD.nInc = 15; // ここで変化量設定
m_spin.SetRange32(0, 1000);
m_spin.SetAccel(1, &stUD);
重さん、発言ありがとうございました。
説明不足だったかもしれません。
重さんの書いた処理は、以前私も試してみたのです。
setAccelで変化量を設定すると、確かに変化量のインクリメントはするのですが、
例えば、UDACCELのnIncを15に設定して、スピンボタンを押した場合・・・
ケース① エディットボックス値が0の場合 -----> 15に変化
ケース② エディットボックス値が5の場合 -----> 30に変化
ケース③ エディットボックス値が15の場合 -----> 45に変化
分かりますか?つまりSetAccelで変化量を設定するとエディットボックスには
その設定値の倍数しか受け付けなくなるのです。
(エディットボックスへの直接入力の場合は別ですが・・)
私も色々考えてみたのですが、やはりUDN_DELTAPOSイベントメソッドで何とか
するしかないようですね。重さん、ありがとうございました