acedGetString获取用户输入字符串

时间:2021-11-05 03:53:54
acedGetString()[ads_getstring()]
int acedGetString(int cronly, const TCHAR *prompt, TCHAR *psz)
acedGetString()函数暂停程序运行以等待用户输入一个字符串,其定义如下:
该函数使result指向用户输入的字符串。参数cronly说明字符串能否包含空格。prompt参数指定acedGetString()函数暂停前显示的字符串。prompt是可选的,如果不需要使用,可放置一个NULL替代字符串的值。result参数必须指向足以容纳字符串的内存区。
acedGetString()函数最多可返回132个字符,所以result所指的字符串长度不能超过133个字符。如果参数cronly的值是真(非零),则字符串可以包含空格,用户必须按Enter键终止字符串的输入。如果参数cronly的值是假(0),则按空格键或Enter键均能终止字符串的输入。
acedGetString()函数返回下列码之一:如果函数调用成功返回RTNORM,如果失败返回RTERROR,如果用户取消(按Esc键)则返回RTCAN。 CString str(_T("")), strTmp(_T(""));

do
{
  strPrompt.Format(_T("\n请输入(%%)<%0.2f>:"), dNum);
  rc = acedGetString(FALSE, strPrompt, str.GetBufferSetLength(1000));//
  if (rc == RTNORM)
  {
    str.ReleaseBufferSetLength(1000);
    if (str == _T(""))
    strTmp.Format(_T("%.1f"), 0.00);
    else
    {
    strTmp = str.SpanIncluding(_T("0123456789"));
    if (strTmp.IsEmpty())
    acutPrintf(_T("\n输入无效,请重新输入数值!"));
    }
  }
  else
    return;
} while (strTmp.IsEmpty());