スピンボタンを押下時のスライダバーの動作について – プログラミング – Home

スピンボタンを押下時のスライダバーの動...
 
通知
すべてクリア

[解決済] スピンボタンを押下時のスライダバーの動作について


May
 May
(@May)
ゲスト
結合: 20年前
投稿: 26
Topic starter  

Windows XP Pro SP2
VC++ 6.0

現在、ダイアログベースでの開発を行っております。

1つ質問なのですが、
現在スライダバーとスピンコントロール付きのエディットボックスを
配置したダイアログがあります。

目的は、
①スライダバーを動かすと、エディットボックスの中の値が変わること。
②スピンボタンを押下して値を変えた時にスライダバーも同様に動作すること。

①は実装できたのですが、②に関しては実現できずにいます。

アドバイス頂けると有難いです。
宜しくお願い致します。


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CSliderCtrl::SetPos() でスライダバーの位置を変更できます。


返信引用
May
 May
(@May)
ゲスト
結合: 20年前
投稿: 26
Topic starter  

ご返答有難うございます。

アドバイスを頂いたSetPos()に関しては使用しておりまして、
現在スピンボタン押下時に作成される関数の中に下記の記述をしています。

void C3DMapTrialFreeViewDlg::OnOutofmemorySpinXXX(NMHDR* pNMHDR, LRESULT*
pResult)
{
int num;
num = m_cSpinXX.GetPos(); // 値をnumへ取得
m_cSliderXXX.SetPos(num); // 取得した値をスライダへ反映
*pResult = 0;
}

このような記述をしていますが、スピンボタン押下時に
そもそもこの関数自体に入っていないようです。

どうしてなのでしょうか?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

関数名から察するに、NM_OUTOFMEMORY(メモリが足りないときの通知)
に対するハンドラのようですけど、
値の変更操作を検出する場合は、UDN_DELTAPOS ハンドラです。
クラスウィザードの設定を確認してみてください。


返信引用
May
 May
(@May)
ゲスト
結合: 20年前
投稿: 26
Topic starter  

dairygoodsさんのおっしゃる通りでした。
UDN_DELTAPOS のハンドラに変更したら
無事うまく行きました。

どうも有難うございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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