编辑控件显示滑块控件位置的读数

时间:2013-07-23 09:48:18

标签: windows winapi visual-c++

我创建了一个链接的Slider ControlEdit Control,因此移动滑块会更改编辑框的文本,手动编辑文本会移动滑块。在大多数情况下它可以工作但是在我拖动Slider后释放鼠标按钮后,Edit 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);
}

1 个答案:

答案 0 :(得分:2)

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