我正在使用CDialogs和mfc。我的对话框加载,有两个输入框和一个按钮。当我单击按钮时,我想让输入框中的值发生变化。我目前的尝试是这个
void
CInstanceNumberDlg::updateLeftRange(int i) {
GetDlgItem(IDC_2NDDERIV_WT)->SetWindowText((LPCTSTR)i);
UpdateData(false);
UpdateWindow();
}
我还尝试过使用UpdateData()和UpdateWindow()的其他组合。使用有效整数到达此方法,该ID应该有效。
如何在输入框中输入要修改的值?
谢谢
答案 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);
}