0

我创建了 aSlider Control和 anEdit Control链接,因此移动滑块会更改编辑框的文本,手动编辑文本会移动滑块。在大多数情况下,它可以工作,但是在拖动 时释放鼠标按钮后SliderEdit Control显示为 0。当我拖动时,它确实显示了正确的值。

我可以通过添加一个子句来部分解决问题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

2

如果您尝试直接使用GetPos而不是使用nPos参数提取滑块的位置,会发生什么情况?

于 2013-07-23T10:14:10.627 回答