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);
}
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);
}
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;
double valueUp;
valueUp=10.10;CString str;str.Format("%f",valueUp);SetDlgItemText(IDC_EDIT_VUP,str);
CString str;
valueUp=10.10;
str.Format("%x",valueUp);
SetDlgItemInt(IDC_EDIT_VUP,str);
valueUp=10.10;
CString str;
str.Format("%10.2f",valueUp);
SetDlgItemText(IDC_EDIT_VUP,str);