c++ - CDialog更新输入框值

标签 c++ mfc modal-dialog

我正在使用 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/

相关文章:

c++ - 当 i 不是常量表达式时寻址 std::tuple 的第 i 个成员?

c++ - 为什么每次从磁盘读取音频文件时,这种双缓冲方案都会产生可听见的喀哒声?

java - SWT模态对话框不是模态的

c++ - 递增二进制值(无符号字符)

python - 用 dill 序列化 SWIG 扩展

mfc - CMFCListctrl 排序

c++ - CToolBar MFC 64 位在 32 位上运行时崩溃

c++ - 在 Windows7 中从安全屏幕 (Ctrl+Alt+Del) 返回时未收到 WM_PAINT 消息

javascript - 使用 javascript onClick 显示 Bootstrap Modal

javascript - 使用 JS 调整 jquery UI 对话框的大小?