CDialog更新输入框值

CDialog update input box value

我正在使用 CDialogs 和 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);
}