C++ 无论下一阶段是什么。类似于此(未经测试): void MarginDlg::onenchangefouredit() { CString编辑字符串; GetDlgItem(IDC_FUELEDIT)->GetWindowText(editString);

C++ 无论下一阶段是什么。类似于此(未经测试): void MarginDlg::onenchangefouredit() { CString编辑字符串; GetDlgItem(IDC_FUELEDIT)->GetWindowText(editString); ,c++,visual-studio-2008,visual-c++,mfc,C++,Visual Studio 2008,Visual C++,Mfc,无论下一阶段是什么。类似于此(未经测试): void MarginDlg::onenchangefouredit() { CString编辑字符串; GetDlgItem(IDC_FUELEDIT)->GetWindowText(editString); 双重价值; if((sscanf(editString、%lf、&editValue)==1) { 如果(editValue>=0.0)&(editValue)我在onchange中使用了此方法,并且对结果非常满意。谢谢!我在killfocus

无论下一阶段是什么。类似于此(未经测试):

void MarginDlg::onenchangefouredit()
{
CString编辑字符串;
GetDlgItem(IDC_FUELEDIT)->GetWindowText(editString);
双重价值;
if((sscanf(editString、%lf、&editValue)==1)
{

如果(editValue>=0.0)&(editValue)我在onchange中使用了此方法,并且对结果非常满意。谢谢!我在killfocus中执行最小错误检查,即确保数字在范围内,如果不在范围内,我将其设置为0或1(并相应地更新滚动条)。我也想在那里更新我的结果,但我有一些问题…因此我目前正在调试。但非常感谢您的解决方案。
void MarginDlg::OnEnChangeFueledit()
{
    CEdit* editBox;
    editBox = (CEdit*)GetDlgItem(IDC_FUELEDIT);

    CString editString;
    editBox->GetWindowText(editString);

    if (editString.Compare(".") != 0 && editString.Compare("0.") != 0
        && editString.Compare(".0") != 0 && editString.Compare("0.0") != 0
        && editString.Compare(".00") != 0 && editString.Compare("0.00") != 0)
    {
        UpdateData();
        UpdateData(FALSE);

        if (fuelMargin > 1)
        {
            UpdateData();
            fuelMargin = 1;
            UpdateData(FALSE);
        }
        if (fuelMargin < 0)
        {
            UpdateData();
            fuelMargin = 0;
            UpdateData(FALSE);
        }
        fuelScroll.SetScrollPos(int(fuelMargin*1000));
    }
}
void MarginDlg::OnEnKillfocusFueledit()
{
    UpdateData();
    UpdateData(FALSE);

    if (fuelMargin > 1)
    {
        UpdateData();
        fuelMargin = 1;
        UpdateData(FALSE);
    }
    if (fuelMargin < 0)
    {
        UpdateData();
        fuelMargin = 0;
        UpdateData(FALSE);
    }
    fuelScroll.SetScrollPos(int(fuelMargin*1000));
}
void MarginDlg::OnEnChangeFueledit()
{
  CString editString;
  GetDlgItem(IDC_FUELEDIT)->GetWindowText(editString);

  double editValue;
  if ((sscanf(editString,"%lf",&editValue) == 1)
  {
    if (editValue >= 0.0) && (editValue <= 1.0))
      fuelScroll.SetScrollPos(int(editValue*1000));
  }
}