VC++によるエディットボックス変数値の値判定
CString str;
CWnd* h = GetDlgItem(IDC_EDIT);
h->GetWindowText(str);
BOOL DigitFlag = TRUE, ZeroFlag = TRUE;
BOOL MinusFlag = str.GetBuffer(10)[0] == '-';
for (int i = 0, j = 0; str.GetBuffer(10)[i] != '\0'; i++){
if (!isdigit(str.GetBuffer(10)[i]))
DigitFlag = FALSE;
if (str.GetBuffer(10)[i] == '0' && ZeroFlag)
j++;
else
ZeroFlag = FALSE;
}
str.ReleaseBuffer();
if (ZeroFlag && j > 1)
str = str.Left(1);
else if (i != 1 && j != 1)
str = str.Mid(j);
if (MinusFlag)
str = "-" + str;
if (!DigitFlag || str == _T("") || str == _T("-") || str == _T("-0"))
return FALSE;
int nNum = atoi((LPCTSTR) str);
return (nNumについての条件式);
Since 2013.4.14