我正在使用 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);
}
关于c++ - CDialog更新输入框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31615817/