CDialog更新输入框值

CDialog update input box value

本文关键字:输入 更新 CDialog      更新时间:2023-10-16

我正在使用cdialog和mfc。我的对话框加载,有两个输入框和一个按钮。当我点击按钮时,我想让输入框中的值发生变化。我当前的尝试是这个

void
CInstanceNumberDlg::updateLeftRange(int i) {
GetDlgItem(IDC_2NDDERIV_WT)->SetWindowText((LPCTSTR)i);
UpdateData(false);
UpdateWindow();
}

我还尝试了包括UpdateData()和UpdateWindow()的其他组合。使用一个有效的整数访问该方法,并且该ID应该是有效的。

如何获得输入框中要修改的值?

谢谢

你的问题是这一行:

GetDlgItem(IDC_2NDDERIV_WT)->SetWindowText((LPCTSTR)i);

i不是指向字符串的指针,因此不应该将其强制转换为LPCTSTR。你需要做的是将i的值转换为字符串,然后将指向结果字符串的指针传递给SetWindowText()。我不认为你需要UpdateData()UpdateWindow()。例如:

void CInstanceNumberDlg::updateLeftRange(int i)
{
  TCHAR tszValue[32];
  StringCchPrintf(tszValue, _countof(tszValue), TEXT("%d"), i);
  GetDlgItem(IDC_2NDDERIV_WT)->SetWindowText(tszValue);
}