0

Slider Controlリンクされたとを作成したEdit Controlので、スライダーを動かすと編集ボックスのテキストが変更され、テキストを手動で編集するとスライダーが移動します。ほとんどの場合は機能しますが、ドラッグ中にマウス ボタンを離すと、Slider0Edit Controlが表示されます。ドラッグしている間は、正しい値が表示されます。

if(nPos != 0)句を追加することで問題を部分的に修正できます。これにより、それが発生しなくなります。Sliderただし、ドラッグではなくクリックして移動すると、Edit Control更新されません。

Sliderをドラッグするのではなく、クリックするときに別のハンドラーが必要ですか? それとも私は何か間違ったことをしていますか?

// Updates slider when value is changed in the Edit Box
void CProject1Dlg::OnChangeEdit1() {
    SLIDER_1.SetPos(GetDlgItemInt(IDC_EDIT1) / 1000);
}


// Slider horizontal scroll handler
void CProject1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    if (nPos != 0) {
        SetDlgItemInt(IDC_EDIT1, nPos * 1000);
    }

    CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
4

1 に答える 1