static
BOOL SetDlgItemDouble (HWND hwndDlg, int idControl, double dValue)
{ TCHAR szBuffer[32];
  /* Note: wsprintf does not handle floating point values. */
#ifdef UNICODE
  swprintf (szBuffer, TEXT("%4g"), dValue);
#else
  sprintf (szBuffer, "%4g", dValue);
#endif
  return SetDlgItemText (hwndDlg, idControl, szBuffer);
}

解决方案 »

  1.   

    static
    double GetDlgItemDouble(HWND hDlg, int nlDDlgItem, BOOL* lpTranslated)
    { TCHAR szBuffer[256];
      TCHAR* endptr;
      if(GetDlgItemText(hDlg, nlDDlgItem, szBuffer, sizeof(szBuffer)))
      { const double dValue = _tcstod(szBuffer, &endptr);
        if (lpTranslated) *lpTranslated = (*endptr=='\0');
        return dValue;
      }
      else
      { if (lpTranslated) *lpTranslated=FALSE;
        return 0;
      }
    }调用:
    BOOL error;
    double value, aVal;
    value = GetDlgItemDouble(hWnd, ID_FILTER_OBSERVATION_VALUE, &error);
    aVal = error ? value : 0.0;
      

  2.   


    double valueUp;
    valueUp=10.10;CString str;str.Format("%f",valueUp);SetDlgItemText(IDC_EDIT_VUP,str);
      

  3.   

    double   valueUp; 
    CString str;
    valueUp=10.10;
    str.Format("%x",valueUp); 
    SetDlgItemInt(IDC_EDIT_VUP,str); 
      

  4.   

    double   valueUp;
    valueUp=10.10;
    CString str;
    str.Format("%10.2f",valueUp);
    SetDlgItemText(IDC_EDIT_VUP,str);