Windows XP Pro SP2
VC++ 6.0
現在、ダイアログベースでの開発を行っております。
1つ質問なのですが、
現在スライダバーとスピンコントロール付きのエディットボックスを
配置したダイアログがあります。
目的は、
①スライダバーを動かすと、エディットボックスの中の値が変わること。
②スピンボタンを押下して値を変えた時にスライダバーも同様に動作すること。
①は実装できたのですが、②に関しては実現できずにいます。
アドバイス頂けると有難いです。
宜しくお願い致します。
CSliderCtrl::SetPos() でスライダバーの位置を変更できます。
ご返答有難うございます。
アドバイスを頂いたSetPos()に関しては使用しておりまして、
現在スピンボタン押下時に作成される関数の中に下記の記述をしています。
void C3DMapTrialFreeViewDlg::OnOutofmemorySpinXXX(NMHDR* pNMHDR, LRESULT*
pResult)
{
int num;
num = m_cSpinXX.GetPos(); // 値をnumへ取得
m_cSliderXXX.SetPos(num); // 取得した値をスライダへ反映
*pResult = 0;
}
このような記述をしていますが、スピンボタン押下時に
そもそもこの関数自体に入っていないようです。
どうしてなのでしょうか?
関数名から察するに、NM_OUTOFMEMORY(メモリが足りないときの通知)
に対するハンドラのようですけど、
値の変更操作を検出する場合は、UDN_DELTAPOS ハンドラです。
クラスウィザードの設定を確認してみてください。
dairygoodsさんのおっしゃる通りでした。
UDN_DELTAPOS のハンドラに変更したら
無事うまく行きました。
どうも有難うございました。