スピンボタンの変化量を設定するには? – プログラミング – Home

スピンボタンの変化量を設定するには?
 
通知
すべてクリア

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


kazu
 kazu
(@kazu)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

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


引用解決済
トピックタグ
重
 重
(@重)
ゲスト
結合: 25年前
投稿: 84
 

SetAccelで変化量は設定できるはずですよ。
以下でテストしてみましたが、きっちり15づつ変化しますがどうでしょう。

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

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


返信引用
kazu
 kazu
(@kazu)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

重さん、発言ありがとうございました。

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました