【发布时间】:2021-12-19 18:15:55
【问题描述】:
我目前正在开发一个 MFC C++ 程序,该程序将数学表达式作为输入并显示结果。但我无法从编辑框中阅读。输入并显示的代码如下:
{
char input[50];
sprintf_s(input, "%d", IDC_EDIT1);
len = strlen(input);
...
...
CString s;
s.Format(_T("%.2f"), mCurVal);
SetDlgItemText(IDC_EDIT1, s);
}
IDC_EDIT1 是来自编辑框的输入。我想将其更改为 char,以便能够调用每个字符并计算数学运算。我提交的中间部分效果很好,所以我尝试了一切以查看问题出在哪里,并且似乎在前 3 行中。谁能帮帮我?
【问题讨论】:
-
sprintf_s(input, "%d", IDC_EDIT1);- 这没有意义。那应该完成什么? -
我最初使用 sprintf 将 int 更改为 char 但将其更改为 sprintf_s 因为它一直给我警告。 Sprintf 也输出相同的内容。无论我输入什么数字,我都会得到 1000 作为输出
-
IDC_EDIT1是编辑框的资源ID(在资源文件中),和值没有任何关系。 -
是的,我想获取我在编辑框中插入的值,这就是我使用 ID IDC_EDIT1 的原因。这不是我应该做的吗?
-
不,这不是您访问控件内容的方式。你已经知道
SetDlgItemText。要执行相反的操作,您可以调用GetDlgItemText。但是,使用 MFC,您可能无论如何都不想手动执行此操作。只需将CString变量绑定到控件,然后让 DDX 执行其他所有操作。实际上,不懂 Windows API 的人熟练使用 MFC 的机会为零。
标签: c++ string mfc char integer