CDialog更新输入框值

时间:2015-07-24 16:49:30

标签: c++ mfc modal-dialog

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

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

我还尝试过使用UpdateData()和UpdateWindow()的其他组合。使用有效整数到达此方法,该ID应该有效。

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

谢谢

1 个答案:

答案 0 :(得分:1)

你的问题就在这一行:

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);
}