1

我在 MFC、C++ 中使用自旋控制来更改数字的值。

这是我的代码:

void CHello_worldDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
    // TODO: Add your control notification handler code here
    m_fSpinIncrement = m_fScalingFactor;
    if(pNMUpDown->iDelta == -1) // Increment the value
    {
    IncrementData(m_fSpinIncrement);
    }
    else // Decrement the value
    {
    DecrementData(m_fSpinIncrement);
    }
    SetDlgItemText(IDC_TEXT3, IDC_SPIN1);
    *pResult = 0;
}

里面有没有错误?并且数字变化将在另一个静态文本框中~

谢谢

4

2 回答 2

3

你做的工作太多了。通过简单地设置旋转控件的适当属性,您尝试做的所有事情都可以做得更好:

  1. Auto Buddy将旋转控件连接到它前面的编辑​​框。
  2. Set Buddy Integer使编辑框自动处理整数。
  3. Alignment设置为“右”将使旋转控件整齐地停靠在编辑框上。

SetRange()您需要的唯一代码是在 OnInitDialog中调用。

于 2012-12-27T08:11:17.660 回答
0

Did you call the SpinButtonCtrl::SetRange() method in any part of your code? From your code, I don't think it is getting the range you want.

于 2012-12-27T05:21:02.103 回答